【问题标题】:Chrome extension popup page link doesn't workChrome 扩展弹出页面链接不起作用
【发布时间】:2011-10-14 15:53:18
【问题描述】:

我正在创建一个有趣的 Chrome 扩展程序,但我的弹出页面出现问题。我使用 jQuery load() 函数来加载现有页面的一部分,比如说:http://aaa.com:

<div id="aaa-news">
$(document).ready(function(){
     $("#ox-news").load("http://aaa/News/ .news_list");
});
</div>

由于我尝试加载到 popup.html 的页面部分包含一些链接,但似乎这些链接的 href 属性已被 Chrome 修改,只要它们加载到 popup.html.So 即使我使用了 chrome.tabs。 create.* API 打开一个新标签,它总是显示给我

没有找到该网址的网页: Chrome 扩展程序://phigdpgmolbpdcihdohfpbafibncbkhl/News/1 错误 6 (net::ERR_FILE_NOT_FOUND):找不到文件或目录。

有人知道吗?感谢您的帮助!

【问题讨论】:

  • 您是说您正在尝试将外部(不包含在扩展程序中)页面的内容加载到您的弹出窗口中,并且其中加载的相关链接没有正确打开?如果是这样,我能想到的唯一干净的解决方法是将链接的来源更改为绝对的(例如&lt;a href="http://aaa/News/1"&gt; 而不是&lt;a href="News/1"&gt;。如果您无法更改来源(即它不属于您) ) 那么你可能需要很聪明,如果链接是相对的,则将它们设为绝对链接。
  • @Alasdair:准确指出!首先,我无法更改源,所以我想也许我可以将相对链接更改为绝对链接,但这有很多硬编码,我该如何动态更改它们?如果他们更新网站,再添加一条新闻怎么办?
  • 不幸的是,这不是一件容易的事,我只能建议您密切关注您的来源以了解其链接的更改。如果它们是简单的相对链接(例如News/1),那么您可以简单地将源页面 URL 添加到该链接以使其工作。但是,如果它们具有更复杂的链接(../News/1/News/1 等),这可能会变得复杂。我刚刚偶然发现this script 这可能会有所帮助,但我现在没有时间测试它。祝你好运!
  • 如果您可以访问源页面的 DOM,也许 url = location.resolveURL(url); 可以工作。但是,如果使用,这可能只会创建一个相对于您的扩展路径的链接:(

标签: popup google-chrome-extension


【解决方案1】:

要修复相对链接,您可以使用&lt;base&gt; 标签。通过设置target="_blank" 使弹出窗口中的所有链接在选项卡中打开也很有用(否则链接变得不可点击):

<base href="http://aaa/" />
<base target="_blank" />

【讨论】:

  • 谢谢你的帖子,但是我的问题是我从其他站点提取并嵌入popup.html页面时会修改href属性的链接地址,通常应该是:“aaa/bbb/c”,但现在它变成了“chrome://phigdpgmolbpdcihdohfpbafibncbkhl/bbb/c”,我尝试了你所说的,但似乎不起作用。我用 标记替换 标记,在 标记中添加 target="_blank" 属性,但它不起作用...
  • @Jianinz 你不需要用&lt;base&gt;替换&lt;a&gt;标签,你需要在&lt;head&gt;里面添加&lt;base&gt;。您是否 100% 确定 Chrome 会替换链接?它不应该。您是否检查过弹出源以查看 html 中的内容?
  • 是的,我确定链接已被替换,可能是由于外部页面源代码中的相关链接。我在想,即使我在“”中添加了“”,但我无法修改所有相关链接,那工作量太大了……
【解决方案2】:

我有同样的问题,并通过使用以下 chrome 扩展解决了它:

新标签重定向! 2.0

https://chrome.google.com/webstore/detail/icpgjfneehieebagbmdbhnlpiopdcmna

在安装此扩展程序后出现的选项卡上单击原始 chrome 页面的“新选项卡”按钮。

【讨论】:

    猜你喜欢
    • 2011-03-13
    • 2011-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-22
    • 2012-10-19
    相关资源
    最近更新 更多