JavascriptのWebページの制限を解除
1844 ワード
ラベル(on+evt)形式で書かれた右クリック禁止、選択禁止、コピー禁止を解除できます・・・
現在の互換性に最適な制限解除スクリプトです.
jQueryバインド、bodyラベル、document、window以外の場所をサポートします.
jsアクセスドメインのframesetとiframeをサポートします.
1.完全なソース
2:javascript接頭辞+圧縮後のコード
現在の互換性に最適な制限解除スクリプトです.
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);