我正在编写 webextension 以简化帐户管理员登录帐户,当我尝试使用 js 获取登录输入时尝试自动将用户登录到 angularjs 应用程序中,但未找到。该元素在浏览器的检查器面板中表示,但在页面源中不存在。
UPD:我找到了问题的原因——这个元素位于页面上的 iframe 中,我当前的问题是如何访问 iframe 的文档。我发现在 devtools 控制台中有命令 'cd' 正是我所需要的:
var ifr = document.getElementById('aid-auth-widget-iFrame');
var ifrContent = ifr.contentWindow;
cd(ifrContent);
document.getElementById('sign-in').value = 'login';
但是 'cd' 不能从页面上的脚本中执行。
接下来我确实尝试访问框架的文档:
var ifr = document.getElementById('aid-auth-widget-iFrame');
ifr.contentWindow.document;
SecurityError: Permission denied to access property "document" on cross-origin object
是否可以在页面上现有的 iframe 中执行 js 或选择和操作此 iframe 中的元素?
弃用的问题内容: 我发现 angular.element 可能会有所帮助,但它也找不到元素。可能是因为我尝试了“文档”,我使用 vanilla js 访问的“文档”是什么,并且缺少所需的元素。我是否需要将其他内容传递给 angular.element 参数?尝试了一些像 angular.element('div#pageWrapper') 这样的选择器作为根但得到错误(错误说这种选择器不受支持)
angular.element('div#pageWrapper')
Error: [jqLite:nosel] http://errors.angularjs.org/1.5.8/jqLite/nosel
杨__羊羊
相关分类