Вы можете сделать это и многое другое с перезаписью ISAPI (для IIS). Это позволяет вам создавать дружественные URL без всех уродливых строк запроса. Это дает пользователям более удобный интерфейс и может сделать ваш контент более доступным для поиска.
Если вы используете Apache, используйте mod_rewrite.
Основная предпосылка обоих заключается в том, что они берут дружественный URL-адрес (например, тот, который вы видите для этого сайта), а затем преобразуют его, используя серию правил (обычно это заданные вами регулярные выражения), во внутренние URL-адреса или строки запросов, которые легко понять по коду.
Примером может быть то, что они преобразуют posts/edit/<postnumber>
в editPost.aspx?postNumber=<postnumber>
с помощью правила преобразования.
Я попробовал технику, которую описал user76888, и она отлично сработала. Я упаковал его в jQuery плагин для удобства, и подумал, что сообществу это может понравиться, так что вот:
jQuery.fn.cleanWhitespace = function() {
this.contents().filter(
function() { return (this.nodeType == 3 && !/\S/.test(this.nodeValue)); })
.remove();
return this;
}
Чтобы использовать это, просто включите его в тег скрипта, затем выберите тег для очистки с помощью jQuery и вызовите функцию так:
$('#widget').cleanWhitespace();
Я думаю, что это подойдет это ...
cleanWhitespace: function(element) {
element = $(element);
for (var i = 0; i < element.childNodes.length; i++) {
var node = element.childNodes[i];
if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
Element.remove(node);
}
}
Вероятно, вы сможете сделать это лучше после установки HTML в узел DOM. После того, как браузер все проанализировал и построил дерево DOM из нашей разметки, вы можете выполнить обход DOM и для каждого найденного текстового узла либо полностью удалить его, если в нем нет непробельных символов, либо обрезать пробелы с самого начала. и конец, если это произойдет.
Рекурсивная версия:
jQuery.fn.htmlClean = function() {
this.contents().filter(function() {
if (this.nodeType != 3) {
$(this).htmlClean();
return false;
}
else {
this.textContent = $.trim(this.textContent);
return !/\S/.test(this.nodeValue);
}
}).remove();
return this;
}
Вы можете $. Trim (widgetHTML);
, чтобы прочитать окружающие пробелы.