我正在尝试通过Google Chrome扩展程序创建一些上下文菜单选项,允许您修改某些网页上的可编辑字段的内容。我的扩展在StackOverflow上完美运行,其中DOM非常简单,但是Youtube已经给我带来了一段时间的麻烦。
Youtube上的许多可修改字段都隐藏在iframe中,因此如果我尝试从顶部框架访问document.activeElement
,我会获得Iframe本身。
我试图通过在每个页面中注入chrome.runtime.onMessage()
个侦听器来解决这个问题。
然后,我可以将事件页面中chrome.contextMenus.onClicked()
事件监听器中info.frameURL
返回的值与内容脚本中的window.location.href
进行比较,以查看消息是否正在寻址是否正确的框架。 (见this question)
问题是info.frameURL
返回的值似乎不一致。
例如,如果您转到主页并使用主搜索框作为测试元素,有时值很简单,www.youtube.com ....,但有时候它是plus.google.com .....或apis.google.com .....或accounts.google.com ......我不知道为什么会这样。
有人可以解释为什么每次点击同一帧时info.frameUrl返回的值都不会保持不变吗?