为何我直接将脚本拖入chrome不能正确实现对页面js的改动
TamperMonkey 下可以这样
window.CollectGarbage = function () {
return true;
};
问题不是这里的, 在于match及runat 没正确读取, 在chrome中变为了*和 无, 无法在document-start时运行,变为了document-idle
qi求答案啊
[code]
// ==UserScript==
// @id fixie
// @name Fixie
// @version 0.99
// @namespace http://x.xx.xxx/
// @author uu
// @description fixie
// @include *gzggzy.cn/*
// @run-at document-start
// ==/UserScript==
a2a2 = function () {
return true;
};
CollectGarbage=a2a2;
[/code]
恩这样正常导入了
但是所针对页面 中,还是被后面加载的js给清理掉了..
郁闷,难道就不能直接用userscript 而不用扩展来解决吗
目标页面 http://www.gzggzy.cn/qyww/sccx/basicInfoview.jsp?qybh=10026
用 __defineSetter__ 防止覆蓋
用 __defineSetter__ 防止覆蓋
求解释如何处理,
用 __defineSetter__ 防止覆蓋求解释如何处理,
var ie_gc = function () { return true; };
Object.defineProperty(window, 'CollectGarbage', {
set: function () {
console.warn ('拒绝不合理的请求 :: 覆盖 CG 函数');
},
get: function () {
return ie_gc;
}
});
虽然你给的地址并没有覆盖掉这个函数,放到这里做个演示。
用 __defineSetter__ 防止覆蓋
求解释如何处理,var ie_gc = function () { return true; }; Object.defineProperty(window, 'CollectGarbage', { set: function () { console.warn ('拒绝不合理的请求 :: 覆盖 CG 函数'); }, get: function () { return ie_gc; } });
虽然你给的地址并没有覆盖掉这个函数,放到这里做个演示。
谢谢你的回复, 不过还是无效 lol
在 chrome 原生下怎么可能有效?需要改为注入的方式(插入 script),还要注意运行时间(document-start)。用 __defineSetter__ 防止覆蓋
求解释如何处理,var ie_gc = function () { return true; }; Object.defineProperty(window, 'CollectGarbage', { set: function () { console.warn ('拒绝不合理的请求 :: 覆盖 CG 函数'); }, get: function () { return ie_gc; } });
虽然你给的地址并没有覆盖掉这个函数,放到这里做个演示。
谢谢你的回复, 不过还是无效 lol
用 __defineSetter__ 防止覆蓋求解释如何处理,var ie_gc = function () { return true; }; Object.defineProperty(window, 'CollectGarbage', { set: function () { console.warn ('拒绝不合理的请求 :: 覆盖 CG 函数'); }, get: function () { return ie_gc; } });
虽然你给的地址并没有覆盖掉这个函数,放到这里做个演示。
谢谢你的回复, 不过还是无效 lol在 chrome 原生下怎么可能有效?需要改为注入的方式(插入 script),还要注意运行时间(document-start)。
啊 我忘了是原生了(
看来 原生态 实现不了 插入方式 了?
看来 原生态 实现不了 插入方式 了?
能的哦。
(function (container, scr) {
scr.textContent = '(' + (function () {
Object.defineProperty(window, 'CollectGarbage', {
set: function () {
console.warn ('拒绝不合理的请求 :: 覆盖 CG 函数');
},
get: function () {
return ie_gc;
}
});
}).toString() + ')();';
container.appendChild(scr);
})(document.head, document.createElement('script'));
当然 我没用过原生的 不知道 document 要不要特殊处理… 大体上是这个思路 (?)
为何我直接将脚本拖入chrome不能正确实现对页面js的改动
内容如下
拖入chrome后查看chrome生成的manifest.json 并没有正确设置match及runat