Rob*_*Lee 5 javascript google-chrome-extension
我有一个支持chrome扩展程序,它是自定义网站从中获取信息的解决方法。我试图确定表中每一行的重定向链接,因为它没有到react表的普通href。
查看代码,我确定一旦单击屏幕上的屏幕x / y位置以执行操作,页面就会被重定向。然后,它通过网站上的固有脚本来获取基于该位置的ID /链接以提供链接。
在下一节之后,其余部分将缩小。
export function _onClick(_ref) { //_ref = MouseEvent {isTrusted: true, screenX: 1230, screenY: 458, clientX: 201, clientY: 332, …}
var target = _ref.target; //target = td.col-xs-2 {__reactInternalInstance$db9spb3eyf: At, __reactEventHandlers$db9spb3eyf: {…}, colSpan: 1, rowSpan: 1, headers: "", …}
store.activate([].concat(_toConsumableArray(store.getInstances())).reduce(domHelpers.findContainerNodes(target), []).sort(domHelpers.sortByDOMPosition).map(function (item) { //target = td.col-xs-2 {__reactInternalInstance$db9spb3eyf: At, __reactEventHandlers$db9spb3eyf: {…}, colSpan: 1, rowSpan: 1, headers: "", …}
return item.instance;
}));
}
Run Code Online (Sandbox Code Playgroud)
如此说来,chrome扩展程序的目的之一是获取页面上重定向到的所有链接(表的每一行都被重定向而未在表中显示href链接)。由于它没有附加到按钮的简单href链接,因此我很难确定如何获取该链接,而无需重定向到页面本身。
我尝试过类似的操作,但是它没有重定向就无法获得我所需要的信息。
window.onclick = function(e) {
console.log(e);
};
Run Code Online (Sandbox Code Playgroud)
任何帮助将非常感激。谢谢
添加了一些新内容,以尝试帮助获取webRequest,但似乎在manifest.js中不起作用。
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'",
"permissions": [
"webRequest",
"*://*.example.com/",
"webRequestBlocking"
],
Run Code Online (Sandbox Code Playgroud)
小智 0
您可以尝试解除点击事件的绑定。由于无法从内容脚本端执行此操作,因此您需要将代码注入到页面中。
清单.json:
{
"name": "Run code on twitter mobile",
"version": "1.0",
"manifest_version": 2,
"content_scripts": [{
"js": ["contentscript.js"],
"matches": ["http://mobile.twitter.com/*"]
}],
"web_accessible_resources": ["script.js"]
}
Run Code Online (Sandbox Code Playgroud)
内容脚本.js:
var s = document.createElement('script');
s.src = chrome.extension.getURL('script.js');
(document.head||document.documentElement).appendChild(s);
s.onload = function() {
s.parentNode.removeChild(s);
};
Run Code Online (Sandbox Code Playgroud)
然后,我会尝试使用removeEventListened解除元素的绑定:
document.getElementById("myDIV").removeEventListener("click", myFunction);
Run Code Online (Sandbox Code Playgroud)
或者只是简单地克隆元素,根据这个答案。
请查看这些答案以获取更多详细信息:
| 归档时间: |
|
| 查看次数: |
216 次 |
| 最近记录: |