【问题标题】:What does getBackgroundPage() function return exactly? (Google Chrome)getBackgroundPage() 函数究竟返回什么? (谷歌浏览器)
【发布时间】:2015-09-21 15:18:06
【问题描述】:

我目前正在尝试使用代码返回网页上显示的 FIRST* 图像:

img.src = chrome.extension.getBackgroundPage().imageSrc[0]

0 代表第一张图片。这似乎有效。但是,getBackgroundPage() 仅适用于当前打开的选项卡。即使用户使用不同的网页,我也希望它能够正常工作。

在发现如何找到当前未运行的网站的第一张图片时,我首先必须了解 chrome.extension.getBackgroundPage() 返回的内容。它是一个字符串吗?还是网址?

我尝试将其替换为, [document.getelementId("hi").getsrc.]imageSRC[0]...hi 在 htm 中表示为一个 div,其中包含我想要的 url 的 src...但它不起作用。有什么解决办法吗?

【问题讨论】:

  • 您是否有理由不简单地使用$("img").first().attr("src")
  • @Nikerym 可能没有 jQuery。
  • Nikerym 因为我找不到特定页面的那个。我将如何为未打开的页面的第一张图片编辑该代码?
  • 抱歉,如有混淆。没有jQuery
  • @Christian 在底部,其中显示“javascript”“jquery”“html”“css”“google-chrome”作为帖子的标签。

标签: javascript jquery html css google-chrome


【解决方案1】:

您为什么要尝试使用扩展来执行此操作?

试试这个;

document.getElementsByTagName('img')[0];

这是原生 javascript,不需要插件、扩展或特定浏览器。

编辑

回答你的问题;

返回当前扩展中运行的背景页面的 JavaScript“窗口”对象。如果扩展没有背景页面,则返回 null。

根据the docs

编辑 2

好的,那么,chrome.extension.getBackgroundPage() 返回 'window' 对象,这意味着你可以做到这一点;

w = chrome.extension.getBackgroundPage()
w.document.getElementsByTagName('img')[0];

编辑 3

一旦你有了一个 dom 对象,你就可以像这样得到任何属性;

document.getElementsByTagName('img')[0].src;

编辑 4

很抱歉最初没有理解。查看 chrome 上“BitBucket Notifier”扩展的源代码。 Most importantly this file.

它每 5 秒轮询一次 Bitbucket(如果我没看错的话)并从站点返回扩展数据。

这可以在您的扩展程序中使用吗?

【讨论】:

  • 我正在制作一个扩展程序,提供带有图片的特定站点的更新。在您提供的代码中,我是否需要将文档设置为我要访问的网址?
  • 不,document是全局变量,可以原样使用。尝试在控制台中运行它以查看它返回的内容。
  • 我有,但我只需要一个网页的结果:/不是全局结果先生。
  • 哦,我明白了,您可能没有聚焦页面,对吗?
  • @SenEmilien 在我的回答中看到我的第二个建议。
猜你喜欢
  • 1970-01-01
  • 2012-08-21
  • 2021-04-15
  • 2011-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-18
相关资源
最近更新 更多