通过 Chrome 扩展查看点击数据

View onclick data via Chrome Extension

我想从 a 标签中提取 onclick 信息。我知道如何正常执行此操作,并且我已经确认它可以通过控制台工作。但是,它 returns null 当尝试通过扩展时。这是否可以通过扩展实现?如果可以:必须采用什么奇怪的方法?

示例:

页面上:<a href="#" onclick="something(stuff,otherstuff)">text</a>

我希望能够抓住那个 something(stuff,otherstuff)

但是,纯 JS 不起作用:String(document.getElementsByTagName("a")[10].onclick)

jQuery也没有:String($(".tableclass").find("tbody").find("a")[10].onclick)

进入控制台后,上述两种方法都有效。

这就是您要更改 link 的 href 的意思吗?你可以这样做:

html:

<a href='foo' class='link-to-swap'>link</a>

javascript:

$(document).ready(function(){
    $('.link-to-swap').click(function(e){
        e.preventDefault();
      var grabbedData = $(this).attr('data-id')
        $(this).attr('href',grabbedData)
      return false
  })
})

这是 fiddle: https://jsfiddle.net/cp6x9pf5/1/

首先,您永远无法读取页面设置的onclick 属性,因为扩展代码运行在isolated scope.

其次,即使代码没有被隔离,<a onclick="foo"></a>onclick 属性 也可能没有您期望的 foo 值。这是因为 属性 与 HTML 属性不同。

因此,如果您想访问 onclick 属性的字符串值,您可以并且应该 使用 linkElement.getAttribute('onclick');