如何执行<;脚本>;javascript追加中的代码
我正在使用一个只有Javascript的插件。我需要让它动态创建一个包含广告的DIV元素 我不明白为什么这不起作用:如何执行<;脚本>;javascript追加中的代码,javascript,jquery,html,dom-events,nextgen-gallery,Javascript,Jquery,Html,Dom Events,Nextgen Gallery,我正在使用一个只有Javascript的插件。我需要让它动态创建一个包含广告的DIV元素 我不明白为什么这不起作用: $(this).append('<div class="overlay-background">Advertisement <script type="text-javascript"> GA_googleFillSlot("blog_landing_right_rectangle_300x250"); <
$(this).append('<div class="overlay-background">Advertisement
<script type="text-javascript">
GA_googleFillSlot("blog_landing_right_rectangle_300x250");
</script>'
$(this).append('广告
GA_googleFillSlot(“博客登陆右矩形300x250”);
'
它会导致使用“Hello World”创建元素,但不会执行GA googleFillSlot函数。将HTML附加到DOM中不会导致浏览器评估所附加HTML中的任何脚本标记 如果确实需要,可以使用
eval()
评估javascript:
请尝试:
s = '<' + 'script type="text-javascript">' +
'GA_googleFillSlot("blog_landing_right_rectangle_300x250");' +
'<' + '/' + 'script>';
$(this).append(s);
s=''+
'GA_googleFillSlot(“blog_landing_right_rectangle_300x250”)+
'';
$(此项)。追加;
UPD:唉,这行不通,请改用wless1的解决方案在您的情况下,一个解决方法可能是附加一个带有onload事件的假图像:
<img src="blank.gif" onload="GA_googleFillSlot('blog_landing_right_rectangle_300x250')" />
此代码在我的浏览器中工作
$('body').append('<script>alert("test");<' + '/' + 'script>');
$('body')。追加('alert(“test”);');
所以可能是$(这个)
才是问题的真正原因
你能用
“body”替换它吗?我知道这是个老问题,但今天我遇到了类似的问题。
解决方案正在使用
我的代码如下所示:
var tagString = '<script async type="text/javascript" src="path_to_script"></script>';
var range = document.createRange();
range.selectNode(document.getElementsByTagName("BODY")[0]);
var documentFragment = range.createContextualFragment(tagString);
document.body.appendChild(documentFragment);
var tagString='';
var range=document.createRange();
range.selectNode(document.getElementsByTagName(“BODY”)[0]);
var documentFragment=range.createContextualFragment(标记字符串);
document.body.appendChild(documentFragment);
由于您的代码是javascript格式的,因此您可以附加并执行以下代码:
$(this).append('<div class="overlay-background">Advertisement</div>');
GA_googleFillSlot("blog_landing_right_rectangle_300x250");
$(this.append('advision');
GA_googleFillSlot(“博客登陆右矩形300x250”);
您是否在HTML页面中使用此代码?如果是,关闭可以被视为您最外层的关闭标记。这不会有帮助,因为脚本无论如何都不会运行。如果您在字符串..”中打断
,这对我很有效代码>谢谢,我忘了将脚本放入脚本,因为我通常将它们放入文件中。此解决方案在与$(This.append)一起放置时会导致未知的白屏错误。将其放置在外部时不会产生任何更改。我没有修改上面的代码。在pubads.g.doubleclick.net上看起来有几十个错误的请求。它看起来像是我在一个循环中附加(下一个画廊旋转木马)。是的,这起作用了:)
$(this).append('<div class="overlay-background">Advertisement</div>');
GA_googleFillSlot("blog_landing_right_rectangle_300x250");