Как передать в качестве параметра функции JS из HTML большой кусок HTML-кода? - PullRequest
0 голосов
/ 13 марта 2011

Я хочу передать в качестве аргумента большой (возможно, 2-3 абзаца кода в формате html) кусок HTML-кода для вызова функции Javascript из HTML.Проблема в том, что отформатированный HTML-код продолжает появляться на самой странице, чего не должно быть!Я предполагаю, что есть некоторые проблемы с одинарными / двойными кавычками!

И я работаю на вкладке Facebook.

Может кто-нибудь помочь мне?

Спасибо.

- ахсан

Ответы [ 3 ]

1 голос
/ 13 марта 2011

Один из способов - создать скрытый div (что-то с display: none) и заполнить его 2-3 абзацами HTML-отформатированного кода.Затем вы можете просто передать innerHTML элемента div в вашу функцию.Кавычки (любого рода) не вызовут проблемы в этом методе.

0 голосов
/ 13 марта 2011

Другой способ - кодировать HTML, а затем декодировать его в JS. Вот пример использования управляющей информации JS:

console.log(escape("<hello></hello>"));           // %3Chello%3E%3C/hello%3E
console.log(unescape("%3Chello%3E%3C/hello%3E")); // <hello></hello>

Имейте в виду, что если у вас возникла проблема с строковыми цитатами, то все равно будет проблема с кодировкой.

0 голосов
/ 13 марта 2011

Некоторые библиотеки, такие как icanhaz.js, также делают что-то вроде этого:

<script type="text/html" id="someHTMLTemplate">
   <div>You can put whatever html you want here</div>
   <p>And the browser just ignores it</p>
</script>

Я использую ту же технику с mustache.js и затем извлекаю шаблон из innerHTML тега script после его захвата с помощьюДом ID.Преимущество этого заключается в том, что браузеру не нужно анализировать ваш лишний html, а при загрузке он просто анализируется, когда вам нужно отобразить его в другом узле на странице.

...