2012-05-05 4 views
1

При переходе через источник для демонстрации Remy Sharp о Simple Drag and Drop, я нашел эту функцию:Какова цель этой функции замены строки?

function entities(s) { 
    var e = { 
    '"' : '"', 
    '&' : '&', 
    '<' : '<', 
    '>' : '>' 
    }; 
    return s.replace(/["&<>]/g, function (m) { 
    return e[m]; 
    }); 
} 

Из того, что я вижу, это просто заменяет "или & или < или> с собой Таким образом, нет никакой необходимости. . что функция

Как я неправильно

UPDATE:. Источник можно просмотреть, нажав кнопку «View Source» в конце страницы

+0

Как выглядит источник? As-it ничего не делает, бит, если он был просмотрен в чем-то, что визуализировал сущности, он будет только * смотреть *, как будто ничего не сделал, поскольку объекты HTML, используемые в качестве замены символов, будут отображаться как символ, а не объект HTML эквивалент. –

+0

Он щелкнул ссылку «Просмотр источника» в нижней части страницы (которая демонстрирует неправильное поведение, отображая специальные символы с символами с амперсантами), а не с помощью средства просмотра исходного кода на уровне браузера. – apsillers

ответ

2

Я посмотрел исходный код страницы в Chrome с Ctrl+U, и это то, что я нашел:

function entities(s) { 
    var e = { 
    '"' : '&quot;', 
    '&' : '&amp;', 
    '<' : '&lt;', 
    '>' : '&gt;' 
    }; 
    return s.replace(/["&<>]/g, function (m) { 
    return e[m]; 
    }); 
} 

Это, очевидно, что-то делает - а именно, она заменяет специальные символы с беглой формой.

Причина, по которой вы видели, что вы сделали, что вы просматриваете на странице «исходный вид» источник визуализируется в HTML. Таким образом, когда строка источника &quot; отображается на странице «источник представления», она отображается на странице HTML как ". HTML5Deoms действительно должны избегать амперсандов на их страницах с исходным кодом, например &amp;quot;, чтобы он отображался на отображаемой исходной странице правильно, как &quot;, но они этого не делают.

+0

Извините.Это была моя ошибка, когда я ** слепо ** полагался на источник просмотра в html, который они предоставили, вместо того, чтобы идти с опцией «view-source». Большое спасибо :) –

1

Вы правы. Эта функция ничего не делает.

2

Я не знаю, где вы его видели (я не могу найти его на сайте, который вы дали), но вы, вероятно, неправильно читаете эту функцию или читаете ее после какого-то разбора в браузере.

Функция, скорее всего, реплики < с &gt; и & с &amp;. Поскольку вы видели его через браузер, браузер заменил объекты на исходные символы, в результате получилось < : < и т. Д.

Если это действительно оригинальная функция и нет ошибки, эта функция ничего не делает.

1

Я посмотрел на источник и говорит, что это:

function entities(s) { 
    var e = { 
    '"' : '&quot;', 
    '&' : '&amp;', 
    '<' : '&lt;', 
    '>' : '&gt;' 
    }; 

Это специальных символов, так что HTML-теги и источник можно увидеть и не интерпретируется как HTML.

0

Я не знаю, где вы нашли эту функцию, но я думаю, что Истина правильная. Это то, что я нашел

function entities(s) { 
    var e = { 
    '"' : '&quot;', 
    '&' : '&amp;', 
    '<' : '&lt;', 
    '>' : '&gt;' 
    }; 
    return s.replace(/["&<>]/g, function (m) { 
    return e[m]; 
    }); 
} 
Смежные вопросы