当我单击商业网站上的按钮时,它会弹出打开一个窗口。该窗口将是ip地址,外加一些字符串文本。我可以得到该名称,然后使用内容脚本中的js代码引用js文件。然后,在该文件中,我使用window.open引用弹出窗口。除了最后一个回调onUpdate()之外,其他所有方法都起作用。该回调是弹出窗口的一部分,这是我需要访问的窗口,因此可以使用save函数。
js
function cfs_add(){
var test;
var text = "*.test.com"
test = String(window.origin)
test = test.substring(8,)
test = test.replace(/\:.*/,'');
test = test.split('.')
var existingWin = window.open('', test[0]+ "_" + test[1] + "_" + test[2] + "_" + test[3] + "_urlObjDlg");
console.log(test[0]+ "." + test[1] + "." + test[2] + "." + test[3])
existingWin.document.getElementsByClassName('button')[0].click()
existingWin.document.getElementsByTagName('input')[9].value = text
try{
existingWin.document.getElementsByClassName('button roundBtn swlEventSave')[0].click()
}
catch(err){
existingWin.document.getElementsByClassName('button roundBtn swlEventClose')[0].click()
}
existingWin.onUpdate();
}
cfs_add()
我有一个chrome扩展名,当我从下面的Javascript Context中运行它时,它可以正常工作。我需要访问另一个页面/窗口中的功能。因为我知道它可以在控制台中工作,所以我假设我需要使用“ iframe.contentDocument || iframe.contentWindow.document”之类的东西。我需要运行的功能是我域之外的网站的一部分,因此我通过window.open访问它并引用其中的元素。但是onclick无效,这是因为对其引用的回调是另一个的一部分窗口...我想。我敢肯定,因为如果我在图片中的javascript上下文中运行,它可以很好地工作。如果我更改为另一个上下文,如Top,它会给我与Chrome扩展程序相同的错误。 >
在哪里可以找到有关此窗口元素以及如何在chrome扩展程序中对其进行操作的信息?