Safari扩展修改iframe?

发布于 2024-10-19 09:11:11 字数 878 浏览 6 评论 0原文

所以我放弃了尝试保护我的注入脚本的 jQuery UI 免受世界上所有 CSS 的影响。我决定创建一个 iframe。

当我单击工具栏按钮时,我在注入的脚本中添加了以下代码来查看 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 但是当我尝试这种方法时,下面的内容完全空白。帮助!

So I gave up trying to defend my injected script's jQuery UI against all the CSS of the world. I decided to create an iframe.

When I click the toolbar button I have this code in the injected script to see if the iframe exists yet:

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();
}

If #myiframe doesn't exist I'll create it. I'm using popup.html as the src for my iframe. In popup.html I have a div with the id "content". My goal is to stuff strData, which is a bunch of HTML data, into #content with append. This is not working.

The iframe is drawn perfectly and opens and closes based on me clicking the button. But I am not able to append strData. I know it can be done but I don't know how. There is one example floating around here http://mg.to/test/dynaframe.html but when I tried this method the content underneath went completely blank. Help!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

泛滥成性 2024-10-26 09:11:11

您需要在 CSS 中拥有自己的命名空间。如果您的类名与页面的类名匹配,那么您将会遇到一些冲突。类似于

.mynamespace_div_text

div_text

You need your own namespace in your CSS. If your classnames match that of the page's, then you'll have some conflicts. Something like

.mynamespace_div_text

instead of div_text

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文