Maison > interface Web > tutoriel HTML > jQuery2.2 iframe 脚本注入的上下文 Bug_html/css_WEB-ITnose

jQuery2.2 iframe 脚本注入的上下文 Bug_html/css_WEB-ITnose

WBOY
Libérer: 2016-06-24 11:21:35
original
1226 Les gens l'ont consulté

最近在iframe中注入脚本,发现jQuery .append()方法和DOM appendChild()方法的区别:

  • DOM API appendChild()方法插入的 <script>会在iframe所在上下文中运行 </script>
  • jQuery(2.2) .append()方法注入的 <script>脚本,其执行上下文总是在当前 window </script>

事实上,jQuery .append()方法对 <script>做了特殊处理: 获取脚本内容并通过 eval()在当前作用域下执行,同时禁用了浏览器默认的脚本调度执行。 </script>

先看例子

设置父容器的 window.id="parent",在注入到iframe的脚本中把它打印出来。 如果是与父容器共享上下文则会打印出 "parent",否则应是 undefined。

window.id = 'parent';var idocument = $('iframe').prop('contentDocument');var injected_script = 'console.log("window.id ==", window.id)';
Copier après la connexion

创建一个

Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal