2015-12-24 2 views
1

В соответствии с Can scripts be inserted with innerHTML? Я могу использовать метод jquery getScript() для запуска удаленного файла javascript, загруженного с помощью Ajax.Может ли jquery выполнить целый html с ajax?

Но в моем случае файл сценария находится в файле html.

У jquery есть метод, который также может работать со смешанными html и javascript, или мне нужно проанализировать файл, чтобы отделить все javascript от html, а затем добавить их динамически?

Если я просто прочитал весь файл и поместил его в innerHTML, поскольку javascript не работает, значит ли это, что innerHTML уже очищен от любого javascript, и мне просто нужно вставить скрипт внутри?

Что бы я хотел, это иметь эквивалентную DOM, если бы я мог включить html статически с импортом.

+0

Если я правильно понимаю, у вас есть html-файл, в котором есть некоторый JS-код в его теге скрипта, и вы хотите импортировать этот файл и загружать только JS-код. правильно? – Rajesh

+0

@ Rajesh yes like html 5 import http://www.html5rocks.com/en/tutorials/webcomponents/imports/?redirect_from_locale=fr, за исключением того, что он еще не является стандартом, и даже если это было, мне нужно иметь эту работу для IE 8, поэтому с помощью Ajax – user310291

+0

Идеальный способ был бы, если бы вы могли переместить этот код в sperate js-файл, но сейчас вы можете попробовать обходной путь. Прочитайте html-файл как строку, используя ajax, а затем разделите тег сценария и используя createElement («script»), создайте скрипт и добавьте его в голову. Не уверен, что это лучший способ. – Rajesh

ответ

1

jQuery будет выполнять HTML, если вы вставляете его в DOM с .html(). Вы также можете использовать .load(), что является лишь сокращением для $.get, который вызывает .html() в своем обратном вызове.

Так что вы можете сделать:

$("#somdiv").load("filename.html"); 

Это будет загружать HTML в DIV, и выполнять любые <script> блоки, которые были в HTML.

+0

только что попробовал: кажется, отлично работает, спасибо большое – user310291

Смежные вопросы