我很擅长使用jQuery,但目前正在使用Safari扩展程序,并且在页面上添加了一些文本时遇到了一些难题。
基本上,我正在创建一个扩展,它会在元素的页面上附加一个特定的文本字符串
<td id="name">foo</td>
使用以下jQuery代码
jQuery("#name").filter(function()
{return jQuery(this).text() == 'foo'; }).append('bar');
这会导致
<td id="name">foobar</td>
这在标准的html页面中效果很好但是 - 我希望它运行的站点使用不同的JS来动态加载元素中的内容,因此在网站上测试它时,元素列为
<td id="name"></td>
然后JS库为其添加名称,这意味着我无法附加文本(名称出现在浏览器窗口中但不在页面的源代码中)。有没有办法解决这个问题?
我尝试过使用
$(window).load()
虽然这没有效果。
答案 0 :(得分:1)
听起来你需要延迟脚本,以便在编写“foo”的其他脚本运行后运行。通常,jquery脚本使用
在文档加载上运行$(function(){ /* script */ });
所以,如果这太早,你可能需要绑定一些在写入“foo”时发生的事件,你可能需要挂钩到你的其他脚本。从问题中不清楚这是一个ajax的东西写“foo”或只是另一个没有任何额外负载的脚本。你可能想发帖。
如果你仍然无法弄明白,你总是可以使用setTimeout()调用来延迟你的脚本,但这很草率,不推荐。