Mal*_*ala 5 javascript greasemonkey
一个页面在html中有以下内容:
<script type="text/javascript">
// some code
</script>
Run Code Online (Sandbox Code Playgroud)
我的greasemonkey脚本需要阻止该脚本运行.我怎样才能做到这一点?
更新:我理解在一般情况下这是不可能的.但是,在我的具体情况下,我可能有一个漏洞?
<script type="text/javascript">
if (!window.devicePixelRatio) {
// some code that I -don't- want to be run, regardless of the browser
}
</script>
Run Code Online (Sandbox Code Playgroud)
window.devicePixelRatio在嵌入式脚本运行之前,我有什么方法可以定义吗?
小智 13
现在可以@run-at document-start和Firefox 一起使用beforescriptexecute.仅在FF24中测试过.
// ==UserScript==
...
// @run-at document-start
// ==/UserScript==
//a search string to uniquely identify the script
//for example, an anti-adblock script
var re = /adblock/i;
window.addEventListener('beforescriptexecute', function(e) {
if(re.test(e.target.text)){
e.stopPropagation();
e.preventDefault();
}
}, true);
Run Code Online (Sandbox Code Playgroud)
beforescriptexecute在2016年被拒绝使用HTML 5,Chrome不太可能实现它.
它不会为<script>其他脚本插入的节点运行.
用户脚本在页面加载后运行,因此您无法这样做。
除非,代码使用“onload”事件。
用户脚本在 DOM 完全加载之后、onload 发生之前执行。这意味着您的脚本可以立即开始,无需等待加载。
| 归档时间: |
|
| 查看次数: |
5336 次 |
| 最近记录: |