在页面加载上动态地将标记插入HTML
我正在尝试使用Javascript动态插入Tweetmeme按钮。 我目前正在整个网站上使用jQuery。 这是我正在使用的脚本。 我基本上想要通过一类日志条目循环遍历所有博客条目,并将以下JavaScript附加到最后。 这个Javascript直接来自tweetmeme.com。 这对我不起作用,它与append()之间的代码有关。 它不喜欢第二组脚本标签。
$(document).ready(function() { $('.journal-entry').each(function(index) { $(this).append(''); }); });
任何帮助表示赞赏。 谢谢。
不要这样做。
将 HTML内容插入DOM是不可靠的:它在不同的浏览器中以不同的方式工作,jQuery不会保护您免受差异的影响。
特别是,编写innerHTML
永远不会导致元素的内容执行,但随后将
元素从它移动到新的父元素(这是jQuery的
append
过程的一部分) 可能会导致脚本执行,但不会总是(这取决于浏览器)。
无论如何,它永远不会工作,因为看着button.js
,它正在调用document.write()
。 该函数仅在初始文档解析时调用才有意义; 如果您之后从事件中调用它,则该呼叫将简单地替换整个页面内容,从而破坏您现有的页面。 调用document.write()
脚本只能在文档加载时从元素的执行路径内运行。 您根本不能将脚本包含在动态创建的内容中,因为它不是为此而设计的。
(如果它让你感觉更好,它根本就没有设计; button.js脚本是一个严重破坏的旧垃圾,包括不正确的URL转义 - 使用escape
而不是正确的encodeURIComponent
- 并且缺少HTML转义。你。远离这些完全白痴可能会更好。)
append(...)
调用中字符串中的结束正在关闭整个
尝试将其分成两个字符串。 例如:
$(this).append('