そしてjavascriptでコピーが禁止されたサイトでクリックすると大抵のサイトでコピーできるようになる。(そのサイトのペーストまでは解除していない)
以下解説。
続きを読む “Webページの「コピペ禁止」を解除・回避する”PC相談員。ニュースサイトより造船や橋梁関係からのコメントを出していきます。たまにPCネタを
そしてjavascriptでコピーが禁止されたサイトでクリックすると大抵のサイトでコピーできるようになる。(そのサイトのペーストまでは解除していない)
以下解説。
続きを読む “Webページの「コピペ禁止」を解除・回避する”addEventListner(‘DOMchange’)でもあるのかと思っていたらそうでもないようで。
読み込んでからjavascriptでがっつり書き換えるサイトに対応するため研究してみた。
特徴はsubtreeを指定して、末端の要素の変更も検出できるようにしたこと。
MutationObserverについて例が少ないので、どなたかの助けになればと。
続きを読む “javascriptでDOM変更を検知する”今日になりFirefoxでアップデートが掛かり、再起動後 Lazy load が掛かっていることに気が付いた。
無駄な通信を減らす意味では大いに賛成だが、まとめサイトなど飛ばし読みするときに画像が遅れて出てくる。そして画像に押し出される形で読んでいる位置がどんどん下がっていく。
単純に loading=”lazy” 追加するだけでなく、width Height も指定しておいてほしい。
とにかく読みづらいので、lazy load をキャンセルさせてもらう。
要点だけを示すと、imgタグの属性 loading =lazy をeagerに変えてしまえばよい。
window.addEventListener(‘scroll’, function(e) {
console.log(“startup”);
var imgObj = Object.values(Array.from(document.body.querySelectorAll(‘img’)).reduce(function(pre, curr) {
if (!pre[curr.src]) pre[curr.src] = curr;
return pre;
}, {}));
for (var i = 0, len = imgObj.length; i < len; ++i) {
imgObj[i].setAttribute(“loading”, “eger”);
}
}, false);
イベントリスナは本来scrollではなくDOMContentLoadedが正しい。但し、うまく動作しないサイトが多かったため、scrollを採用した。
お陰で割込みが起こりまくるのでサイトのパフォーマンスが下がる可能性がある。
tampermonkey用のスクリプトを下記に記す
// ==UserScript==
// @name RemoveLoadingLazy
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Remove lazy of loading attribute of <img> tag
// @author You
// @match https://*/*
// @match http://*/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
window.addEventListener('scroll', function(e) {
console.log("startup");
var imgObj = Object.values(Array.from(document.body.querySelectorAll('img')).reduce(function(pre, curr) {
if (!pre[curr.src]) pre[curr.src] = curr;
return pre;
}, {}));
for (var i = 0, len = imgObj.length; i < len; ++i) {
imgObj[i].setAttribute("loading", "eager");
}
}, false);
})();
このスクリプトはとりあえず全てのサイトに適応されている。パフォーマンスの低下するなら、tqmpermonkeyのアイコンをクリックして除外を設定してほしい。
続きを読む “Firefox75でlazy loading support”eventでkeyup でShiftKeyが上がったことを検出できない。
document.addEventListener('keyup', function (e) {
console.log("keyup で e.shiftKeyが検出できない "+e.shiftKey);
}, false);
document.addEventListener('keydown', function (e) {
console.log("keyup で e.shiftKeyが検出できる "+e.shiftKey);
}, false);
考えてみればKeyUpされたときには既にShiftKeyが離れているからかと勝手に納得してみたが、やっぱり理解できない。
だがなんとかして知りたい。
document.addEventListener('keyup', function (e) {
console.log(e.key == "Shift");
}, false);
edgeとchormeとFirefoxで確認した。一応動作する形。
続きを読む “JavaScriptでシフトキーが離されたことを知る”MDNでもRetinaディスプレイの判別に使っていますが、本来この関数はCSS上の1pxが物理ピクセルいくつで表示されているかという値です。
value = window.devicePixelRatio;
つまり、ブラウザの拡大縮小でもこの値が変わってきます。しかもChorme等ブラウザによっては「0.8999999761581421」なんていう値が返ってきたりします。
良く例文で返り値が1はPC、2はRetina、3はiPhoneとか書いてありますが整数だけで判断すると良くない結果になりますのでご注意を。
虫眼鏡機能を足すというより、アクセスコントロールの効いたhttpsコンテンツにJavaScriptライブラリを力ずくで埋め込む方法です。
色々なJavascriptがありますが、okzoom.jsにしました。
var req = new XMLHttpRequest(); req.open("GET", "https:////okzoom.min.js", false); // async=false レスポンスを待って実行させる。 req.send(""); // openはasyncが待つのはsend。意味は無いが消すとモーダルとなる。 eval(req.responseText);
(Reason: CORS header ‘Access-Control-Allow-Origin’ missing)
opneの所で。要するにセキュリテイ上よそのJavaxcriptは受け付けませんよ。という事です。
JavaScriptではヒアドキュメントが正式では使えないので、改行しないように編集します。その時点で著作権やクレジットが消えてしまうのでコピペ例文としては出せません。
var zoomingjs= '$(function(a){var b=function(c){c=c.t..................................uto"}});'; eval(zoomingjs);
Javascript内に忍び込ませることで何とか読んでもらえました。
もちろんeval内に直接書いても構いません。