Bookmarklet返回Uncaught TypeError:无法读取null的属性“click”

问题描述 投票:0回答:1

我是编码新手,我正在尝试创建一个自动点击具有特定名称的复选框的书签。在这种情况下,我试图让bookmarklet自动选中“A”复选框。

我正在使用这个网站来测试我的代码。 http://jsfiddle.net/fjaeger/L9z9t04p/4/

我在书签中保存的内容是:

javascript:(function()%7Bdocument.querySelector('%23check-a').click()%7D)()

这是我放完后得到的

 document.getElementById('check-a').click();

通过https://mrcoles.com/bookmarklet/

进入Chrome控制台时,我的代码运行正常,但当我将其用作书签时,它就像

Uncaught TypeError: Cannot read property 'click' of null
at < anonymous>:1:47
at < anonymous>:1:57
javascript google-chrome bookmarklet
1个回答
0
投票

你写的代码是正确的。这里的问题是jsfiddle网站。此站点在iframe元素内运行代码,而不是在页面本身上运行。 document引用当前文档,但iframe是不同的document,并且您的代码找不到该元素。

你可以试试

window.frames[0].document.getElementById('check-a').click();

但是,您将收到错误,因为该帧位于不同的原点,并且浏览器阻止访问跨源资源。

尝试编写一个简单的HTML页面来测试您的书签。

© www.soinside.com 2019 - 2024. All rights reserved.