所以我放弃了保护我注入(inject)脚本的 jQuery UI 免受世界上所有 CSS 攻击的尝试。我决定创建一个 iframe。
当我单击工具栏按钮时,我在注入(inject)的脚本中添加了以下代码来查看 iframe 是否存在:
if($('#myiframe').length == 0) {
$('body').append('<iframe src="' + safari.extension.baseURI + 'popup.html" id="myiframe" style="width: 400px; height: 500px; position: absolute; top: 0; left: 0; z-index: 100000;">');
$('#content').append(strData);
} else if($('#myiframe').is(':visible') == true) {
$('#myiframe').hide();
} else {
$('#myiframe').show();
}
如果#myiframe不存在,我将创建它。我使用 popup.html 作为 iframe 的 src。在 popup.html 中,我有一个 id 为“content”的 div。我的目标是将 strData(一堆 HTML 数据)通过附加方式填充到 #content 中。这不起作用。
iframe 绘制得很完美,并且根据我单击按钮来打开和关闭。但我无法附加 strData。我知道可以做到,但我不知道如何做到。这里有一个例子 http://mg.to/test/dynaframe.html但当我尝试这种方法时,下面的内容完全变成空白。救命!
最佳答案
您需要在 CSS 中拥有自己的命名空间。如果您的类名与页面的类名匹配,那么您将会遇到一些冲突。类似的东西
.mynamespace_div_text
而不是div_text
关于javascript - Safari扩展修改iframe?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5137871/