解除javascript网页限制

可以解除写在 标签 (on+evt)形式的 禁止右键、禁止选择和禁止复制···
为目前兼容性最好的解除限制脚本。 
支持 jQuery 绑定,非  body标签、非document、非window 位置。

并支持 js访问域下的 frameset和iframe。

1. 完整源码

(function(window) {
    var eventArr = ['contextmenu', 'dragstart', 'mouseup', 'copy', 'beforecopy', 'selectstart', 'select', 'keydown'];
 
    function runScript(window) {
        var document = window["document"],
            $ = window["jQuery"],
            unbind = function(ele) {
                eventArr.forEach(function(evt) {
                    ele['on' + evt] = null;
                    if ($) {
                        $(ele).unbind(evt);
                    }
                    try {
                        if (/frame/i.test(ele.tagName)) {
                            runScript(ele.contentWindow);
                        }
                    } catch (err) {}
                });
            };
        [window, document].forEach(unbind);
        for (var i = 0, all = document.all, len = all.length; i < len; i++) {
            var ele = all[i];
            if (ele && ele.nodeType === 1) {
                unbind(ele);
            }
        }
    }
    runScript(window);
})(window);

2:javascript前缀+压缩后的代码

javascript:(function(c){function e(a){var b=a.document,f=a.jQuery,g=function(a){h.forEach(function(b){a["on"+b]=null;f&&f(a).unbind(b);try{/frame/i.test(a.tagName)&&e(a.contentWindow)}catch(c){}})};[a,b].forEach(g);a=0;for(var b=b.all,c=b.length;a<c;a++){var d=b[a];d&&1===d.nodeType&&g(d)}}var h="contextmenu dragstart mouseup copy beforecopy selectstart select keydown".split(" ");e(c)})(window);




你可能感兴趣的:(解除javascript网页限制)