Есть ли способ вытащить действительный сценарий из содержимого HTML и выполнить его с помощью jQuery? - PullRequest
0 голосов
/ 29 сентября 2010

Скажите, у меня что-то вроде этого:

<p id="script">$("p").css("color", "red");</p>

Есть ли способ выбрать скрипт, содержащийся в теге, и выполнить его с помощью jQuery?В этом случае скрипт

$("p").css("color", "red");

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

Ответы [ 2 ]

4 голосов
/ 29 сентября 2010
eval($("#script").text())

Поскольку он использует text(), он должен вырезать любой HTML-код, чтобы вы могли применять любые подсветки кода к коду, если хотите.

Например, если вы использовали подсветку кода StackOverflow и хотели выбрать код, text () вернет то, что вы ожидаете:

eval($("#script").text())

Принимая во внимание, что html(), вероятно, вернется

<span class="kwd">eval</span><span class="pun">(</span><span class="pln">$</span><span class="pun">(</span><span class="str">"p #script"</span><span class="pun">).</span><span class="pln">text</span><span class="pun">())</span><span class="pln"><br></span>

Что явно не может быть оценено.

Если вы не планируете делать подсветку кода, это не проблема.

1 голос
/ 29 сентября 2010

Вы можете позвонить eval(), хотя я бы переоценил ваш подход, например:

eval($("#script").html());

Вы можете проверить это здесь .Это просто иллюстрирует, что можно сделать, но вы должны попытаться избежать этого, если это вообще возможно, у него как минимум проблемы с безопасностью и производительностью.

...