阅读:1171回复:3
大家看看这个脚本问题在哪里
https://greasyfork.org/en/scripts/29352-screen-resolution-spoof
// ==UserScript== // @name Screen Resolution Spoof // @namespace r-a-y/browser/screen // @description Alters attempts at fingerprinting your screen resolution to 1920x1080. Only tested in FIrefox. // @include * // @version 1.1.4 // @grant none // @run-at document-start // ==/UserScript== Object.defineProperty(window.screen, "availWidth", { get: function(){return 1920; }}); Object.defineProperty(window.screen, "width", { get: function(){return 1920; }}); Object.defineProperty(window.screen, "availHeight", { get: function(){return 1080; }}); Object.defineProperty(window.screen, "height", { get: function(){return 1080; }}); Object.defineProperty(window, "innerWidth", { get: function(){return 1920; }}); Object.defineProperty(window, "innerHeight", { get: function(){return 974; }}); Object.defineProperty(window, "outerWidth", { get: function(){return 1920; }}); Object.defineProperty(window, "outerHeight", { get: function(){return 1040; }}); Object.defineProperty(window, "devicePixelRatio", { get: function(){return 1; }}); 为何在http://service.spiritsoft.cn/ua.html上检测不生效, |
|
1楼#
发布于:2018-08-10 16:37
一句话:异步执行没赶上趟。
在mozilla决定转webextension时我就说过了,webextension自身的异步执行机制决定了那些强烈依赖同步功执行能的扩展都要完蛋。 比如你这个脚本。开头写了document-start,原意是在页面的根节点构造好后就执行,由于js的单线程特性,同步执行时可以保证页面中的东西都还没有开始解析。但现在webextension弄成异步执行了,页面的解析工作并不会停下来等扩展来加载你的脚本。这个页面本身又很简单,所以脚本运行时页面都解析完成了,页面中的js都执行完毕了。你再去改那些属性也没用了。 |
|
2楼#
发布于:2018-08-10 17:17
哦哦哦,所以这个扩展https://addons.mozilla.org/zh-CN/firefox/addon/chameleon-ext/?src=search引入了禁止webextension来保证扩展的运行。
|
|
3楼#
发布于:2018-08-10 19:31
marb:哦哦哦,所以这个扩展https://addons.mozilla.org/zh-CN/firefox/addon/chameleon-ext/?src=search引入了禁止webextension来保证扩展的运行。回到原帖你看错了。webextension就是57+扩展机制本身,你说的是websocket |
|