use*_*063 11 html javascript jquery dom-events nextgen-gallery
我正在使用只有javascript的插件.我需要让它动态创建一个带有广告的DIV元素.
我无法弄清楚为什么这不起作用:
$(this).append('<div class="overlay-background">Advertisement
<script type="text-javascript">
GA_googleFillSlot("blog_landing_right_rectangle_300x250");
</script>'
Run Code Online (Sandbox Code Playgroud)
它导致使用"Hello World"创建的元素,但它不执行GA-googleFillSlot函数.
wle*_*ss1 15
将HTML附加到DOM中不会导致浏览器评估所述附加HTML中的任何脚本标记.
如果你真的想,你可以使用eval()以下方法评估javascript :
eval($(this).find("script").text());
Run Code Online (Sandbox Code Playgroud)
tem*_*emo 11
我知道这是一个老问题,但我今天遇到了类似的问题。解决方案是使用createContextualFragment。
我的代码看起来像这样:
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);
Run Code Online (Sandbox Code Playgroud)
这段代码在我的浏览器中有效。
$('body').append('<script>alert("test");<' + '/' + 'script>');
Run Code Online (Sandbox Code Playgroud)
所以这可能是$(this)真正导致你的问题的原因。
您可以替换它并'body'看看它是否像这样工作吗?
| 归档时间: |
|
| 查看次数: |
19317 次 |
| 最近记录: |