首页 > 解决方案 > 返回未捕获类型错误的书签:无法读取 null 的属性“单击”

问题描述

我对编码完全陌生,我正在尝试创建一个书签,它将自动单击具有某些名称的复选框。在这种情况下,我试图让小书签自动单击“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

标签: javascriptgoogle-chromebookmarklet

解决方案


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

你可以试试

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

但是,您会收到一个错误,因为该框架位于不同的来源,并且浏览器阻止了对跨域资源的访问。

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


推荐阅读