使用jquery将<script>附加到<div>中

时间:2015-07-08 08:26:18

标签: javascript jquery

我正在尝试将&lt; script&gt; 标记附加到我的&lt; div&gt; 中。每当我尝试这样做时,脚本就不会加载。但是如果我在标签下对其进行硬编码,它就可以工作。

&#xA;&#xA;

但如果我尝试附加&lt; img&gt; 标签,它就可以了!

&#xA;&#xA;

这是一个部分代码,可以为您提供一些想法。

&#xA;&#xA;
  $(document).ready( function(){&#xA; var tag ='&lt; script src =“xxx.js”&gt;&lt; / script&gt;'; //抓取图片的文件&#xA; var tag2 ='&lt; img src =“一些图片链接“&gt;&lt; / img&gt;';&#xA; $('#test')。append(tag); // testing&#xA; $('#test2')。append(tag2); / / testing&#xA;});&#xA;  
&#xA;&#xA;

关于HTML

&#xA;&#xA;
 &lt; div id =“test”&gt;&lt; / div&gt; &lt;! - 不工作! - &gt;&#xA;&lt; div id =“test2”&gt;&lt; / div&gt; &lt;! - 这个作品! - &gt;&#xA;&#xA;&lt; div id =“test”&gt;&lt; script src =“xxx.js文件以获取图片”&gt;&lt; / script&gt;&lt; / div&gt; &lt;! - 这也有效! - &gt;&#xA;  
&#xA;&#xA;

使用以下详细信息进行修改:

&#xA;&#xA;

我'我实际上是在网上寻找解决方案,大多数答案几乎与这里给出的答案相同。就我而言,它与其他人略有不同。那是因为标签变量实际上是数据库必须的。

&#xA;&#xA;
 &lt;?&#xA; $ result = mysql_query(“SELECT code FROM users_loc WHERE method = 'script'“)或die(mysql_error());&#xA; $ row = mysql_fetch_array($ result);&#xA;?&gt;&#xA;  
&#xA;& #xA;

和javascript方面:

&#xA;&#xA;
  $(document).ready(function(){&#xA; var tag =&lt;? echo $ row ['code']?&gt ;;&#xA; var tag2 =&lt;?echo $ row2 ['code']?&gt ;;&#xA; $('#test')。append(tag) ; //测试&#xA; $('#test2')。append(tag2); // testing&#xA;});&#xA;  
&#xA;&#xA; < p>在我的网站上,用户将他们的外部图像源输入到我的数据库中,我将获取源并在我的网站上显示它。但是当用户输入&lt; script&gt; 标签时会出现问题,如果它被硬编码到&lt; div&gt;

&#xA; &#xA;

我在我的控制台上一直有这个错误消息“从异步加载的外部脚本调用document.write()被忽略了。”

&#xA;&#xA;

我希望这能解决这些困惑。谢谢。

&#xA;&#xA;

编辑:我认为这是追加的问题: Jquery append()是否异步行为?

&#xA;

3 个答案:

答案 0 :(得分:2)

这一切都是因为解析问题。找到</script>此代码后出现问题。它假设我们想要关闭脚本标记,但我们不会。为了避免这种情况,请将\放在/之前,以便逃避特殊字符:

$(document).ready(function() {
  var tag = '<script src="xxx.js"><\/script>'; // file to grab images
  var tag2 = '<img src="some image link"></img>';
  $('#test').append(tag); //testing
  $('#test2').append(tag2); //testing
});

<强> DEMO

尝试检查chrome中的元素以查看代码。

答案 1 :(得分:1)

试一试:

var script = document.createElement( 'script' );
script.type = 'text/javascript';
script.src = 'xxx.js';

$('#test').append(script); 

答案 2 :(得分:0)

如果在源顺序中注入脚本标记的位置很重要,Mario Araque的解决方案适合您。如果没关系,R3tep的解决方案可以很好地完成工作。