【问题标题】:Create div with script tag inside with jquery用jquery在里面创建带有脚本标签的div
【发布时间】:2012-03-29 17:48:08
【问题描述】:

我有使用 jquery 动态加载的内容。内容是带有脚本标签的 HTML。

所以我有这样的东西。

var content = '<script language="javascript" type="text/javascript">alert("test");</script><div>mydiv</div>';

我想用 jquery 创建一个包含此内容的新 div

var dialog = $('<div class="modal-popup">' + content + '</div>');

但在新创建的 div(对话框)中没有脚本标签。

过去它有效。我们将 jquery 从 1.5.1 更新到 1.7.1。我已经过时的 jquery,结果相同。

我们使用 ist 创建一个打印对话框,并且我们认识到,我们不能再打印了。我正在浏览存储库,但找不到我们所做的更改。

是什么原因,脚本标签不见了?

编辑: 这取决于 JQuery 版本。在 v1.5.1 中有效,在 v1.7.2 中无效。

在我之前的 v1.5.1 测试中它不起作用的原因是浏览器出于某些原因缓存了 jquery

编辑 2:在此示例中,内容是一个字符串变量,以保持简单。在实际环境中,内容由 $.get 填充,是一个带有 javascript 的 HTML 文档。

【问题讨论】:

标签: jquery html creation


【解决方案1】:

结束&lt;/script&gt; 标记的&lt;/ 序列将结束HTML 中脚本元素的解析。

在脚本中的任何地方都不能有字符 &lt;/ 标记,即使它是字符串的一部分。如果看到这种情况,支持 HTML4 的浏览器应该停止脚本块 -Phrogz

转义斜线&lt;\/ 应该可以解决问题。

【讨论】:

  • 特别是你不能在脚本标记中的任何地方包含字符&lt;/,即使它是字符串的一部分。如果看到这种情况,支持 HTML4 的浏览器应该停止脚本块。
  • 感谢您的帖子。但是上面的例子只是为了保持简单。在真实环境中,内容是由 $.get 填充的,是来自 HTML 文档的响应,其中包含 javascript。
猜你喜欢
  • 1970-01-01
  • 2015-12-22
  • 1970-01-01
  • 1970-01-01
  • 2014-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多