返回首頁 

Обсуждения»Разработка

为何我直接将脚本拖入chrome不能正确实现对页面js的改动

Создано: 03.01.2015
Изменено: 03.01.2015

为何我直接将脚本拖入chrome不能正确实现对页面js的改动

内容如下

// ==UserScript==// @name           fixIE func// @author         none// @description    fixIE// @version        0.0// @grant           none// @include        *// @match          http://www.xx.com/*//@run-at    document-start// ==/UserScript==//function a2a2(){return true;}CollectGarbage=a2a2;

拖入chrome后查看chrome生成的manifest.json 并没有正确设置match及runat

TamperMonkey 下可以这样

window.CollectGarbage = function () {return true;};

问题不是这里的, 在于match及runat 没正确读取, 在chrome中变为了*和 无, 无法在document-start时运行,变为了document-idle

qi求答案啊

Создано: 05.01.2015
Изменено: 05.01.2015

[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

Создано: 06.01.2015
Изменено: 06.01.2015

用 __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

Создано: 09.01.2015
Изменено: 09.01.2015
用 __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

在 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 要不要特殊处理… 大体上是这个思路 (?)

Ответить

Войдите, чтобы ответить.