我确信这听起来有点奇怪,但这是背景......
我们利用加载聊天程序的公司,因此我们可以支持我们的客户,进入我们的页面。这是通过javascript和jquery完成的,并创建一个这样的结构:
<div id="myid" style="...; right: 0px;..."><div><iframe></iframe></div></div>
还有更多的东西,但那些是重要的部分。现在,该工具允许我们放置自定义脚本,它将放在iframe中。我的目标是删除“right:0px”,这是我通过以下代码完成的,但我不想将该代码放在此工具集成的每个页面上。我想将它加载到工具中,并在创建iframe和div时运行它。
父母的工作代码:
$(document).ready(function() {
function checkPos() {
$('#myId').each(function() {
var oldstyle = $('#myId').attr('style');
var newstyle = oldstyle.replace(' right: 0px;','');
$('#myId').attr('style', newstyle);
});
setTimeout(checkPos, 100);
};
$(document).ready(function() {
setTimeout(checkPos, 100);
});
});
一旦放入他们提供的代码包含方法中,我就很难让它等到div标签实际上具有“right:0px;”在它的样式标签。我唯一需要运行的是$('#myId').each(function()
基本上,我需要帮助,让iframe中的脚本定位iframe嵌套的div。
答案 0 :(得分:0)
假设您使用的任何工具实际上允许您将自定义脚本传递给iframe中呈现的内容(对我来说似乎很可疑),在jquery中修改样式的更好方法是使用css函数:
$('#myId').css('right', '0px');
注意我也删除了$.each
功能。您正在使用id定位元素,因此无需迭代。
修改强>
无论如何,回到延迟执行到目标#myId
实际存在的问题。如果他们真的将你的javascript注入他们的页面(再次看起来很可疑),那么将上述代码附加到$(document).ready()
事件应该可以解决问题,只要这个监听器附加到他们的文档强>
如果所有其他方法都失败了,请尝试使用waitUntilExists插件:
来源:
https://gist.github.com/buu700/4200601
相关问题: