未捕获的TypeError:在Bookmarklet中运行JavaScript代码时,无法读取null的属性“innerHTML”

时间:2016-08-07 17:53:59

标签: javascript google-chrome google-chrome-devtools

我正在尝试通过将其保存为Chrome书签来运行以下代码。

init(...) {
   let count = 10
   let noOfBags = 3 

   self.count = count
   self.noOfBags = noOfBags
   self.gameAPI = GameAPI(noOfBags: count, noOfTokens: noOfBags)

   super.init(...)
}

但它给了我错误。 VM1747:1未捕获的TypeError:无法读取null

的属性'innerHTML'

但是当我尝试在控制台中运行相同的代码时。它运作得很好。

为什么在运行代码时会出现异常,以及如何纠正此问题。

1 个答案:

答案 0 :(得分:0)

Chrome现在通过不使用javascript:协议执行一些操纵URL的JavaScript来改善现状。所以,是的,这个实现将失败。 :)这是一项安全功能。

更多信息:Same Origin Policy

  

但它适用于控制台......

使用Chrome开发者控制台(或任何当前的 F12 开发人员工具),您甚至可以获取Cookie,会话信息和凭据。控制台具有全功率。 :)简单来说,您的JavaScript控制台就像是网站中JavaScript的管理员帐户。

  

任何解决方法?

否。但是可以创建一个扩展程序或UserScript并使用TamperMonkey为Google Chrome运行它。 Firefox有一个名为GreaseMonkey的扩展程序。