Fiddler で Decrypt HTTPS traffic にチェックを入れると

というエラーが出てしまう場合の対処。
Fiddler: Creation of interception certificate failed. | Harachie's Blog
直った。
Fiddler で Decrypt HTTPS traffic にチェックを入れると

というエラーが出てしまう場合の対処。
Fiddler: Creation of interception certificate failed. | Harachie's Blog
直った。
過去に書いた名前付き関数式で定義されたグローバル関数からはクロージャが使えないからの関連で。
参照先オブジェクトが属するスコープから抜ける前なら(クロージャとしての定義時の環境ではなく実行時の環境として)、名前付き関数式のブロック内から参照することは出来ます。
(function () {
(function () {
function common_load () {
void function x () { alert (typeof common_load); };
};
common_load ();
x (); // function (まだ生きている)
}) ();
x (); // undefined (スコープを抜けたので消失)
}) ();
Dorothy2 の Dorothy2A.dms では OnHttpRequest() 内で common_load() が定義されていて、実行終了まで OnHttpRequest() を抜けないので、common_load() で実行したスクリプトで名前付き関数式によって定義された関数内からも common_load() を呼び出せる、という挙動のようです。
あと名前付き関数式でなくて無名の関数式(を変数に代入したもの)でもスコープ抜けたら参照できなくなります。
function Foo () {
alert ('Foo constructor');
}
Foo.prototype.p = function () {
alert ("this is Foo\nnameOf = " + nameOf (this));
};
function Baz () {
alert ('Baz constructor');
}
Baz.prototype.p = function () {
alert ("this is Baz\nnameOf = " + nameOf (this));
};
function test () {
var f = new Foo (); // Foo constructor
f.p (); // this is Foo, nameOf = Foo
var Bar = Foo;
var f2 = new Bar (); // Foo constructor
try { f2.p (); } catch (e) { alert (e); } // ENameError
var Baz = Foo;
var f3 = new Baz (); // Foo constructor
f3.p (); // this is Baz, nameOf = Baz
}
test ();
変数に関数を代入してその変数名で new すると、参照している関数がコンストラクタとして呼び出されますが、prototype として使われるのはその変数名と同名の関数の prototype になってしまいます。
名前付き関数式はグローバルスコープに対する関数宣言として動作する の末尾のエラー例も、これと同じことだと思います。
var sb = new StringBuffer ('aZ');
alert (sb.indexOf ('Z', 0)); // 1
alert (sb.indexOf ('Z', 1)); // 1
alert (sb.indexOf ('Z', 2)); // 1 ※本来は -1
alert (sb.indexOf ('Z', 3)); // 1 〃
alert (sb.indexOf ('Z', 4)); // 1 〃
StringBuffer.indexOf() で
length 以上の値を指定。という条件の時、-1 ではなく末尾の文字の位置を返してしまいます。
検索する文字列が2バイト以上なら問題ないようですが確証はありません。
●アーカイブからファイルをコピー
http://u1.getuploader.com/irvn/download/549/DOA.tx-.zip
Dorothy2\document\プログラミング\DOA.txt を
%Irvine%\Dorothy2\document\プログラミング\ にコピー。
http://u1.getuploader.com/irvn/download/376/DOA0.17.zip
xor100813_2.dms を
%Irvine%\scripts\ にコピー。
http://u1.getuploader.com/irvn/download/388/DOA018.zip
DOA.txt を
%Irvine%\Dorothy2\document\使い方\ にコピー。
xor100813.dms を
%Irvine%\scripts にコピー。
http://u1.getuploader.com/irvn/download/1112/DOA.zip (ver0.22)
DOA.dfm と DOA.dms を
%Irvine%\scripts にコピー。
●Irvine のオプション設定
ツール→オプション設定→スクリプトを開く。
OnListMenuClick の DOA にチェックを入れる。
OnTreeMenuClick の DOA にチェックを入れる。
●DOA スクリプトのコピー
使用したい DOA スクリプトのファイルを
%Irvine%\Dorothy2\DOA にコピー。
※Dorothy2 のパッケージインストール機能で出来る。
●その他
openQfolder 関係は省略。
使う場合は DOA018.zip と xor100914.zip(修正版) からコピーする。
Internet Explorer によるニコニコ生放送の閲覧を支援するブックマークレットです。
ニコ生を閲覧中に実行すると、Flash Player だけが表示されるように IE のウィンドウを出来るだけ小さくします。
もう一度実行するとウィンドウが大きくなります(手抜きのため、元と同じ大きさには戻りません)。
Windows 7(テーマは Windows 7)、IE10、ニコ生 GINZA にあわせて作ってあるので、それ以外の環境では動作しなかったりズレたりすると思います。
javascript:(function(w){var o=$('flvplayer');if(o.style.position==='fixed'){o.style.position='static';w.resizeTo(992,1000);}else{['ad_bnr','footer_ads'].each(function(id){var e=$(id);e&&e.remove();});o.hide();o.style.position='fixed';o.style.top='-61px';w.resizeTo(992,506);o.show();}})(window)
こんな感じになります。
![]()
増えてきたのでこっちに保存。
RTMP
http://www.youtube.com/watch?v=bEPO400pwgE
日本語投稿者名
http://www.youtube.com/watch?v=WUjnBoIjZL0
有料 この動画はお住まいの地域ではご利用いただけません。
http://www.youtube.com/watch?v=AtzsWDbFzps
4K2K
http://www.youtube.com/watch?v=N0m1XmvBey8
3D
http://www.youtube.com/watch?v=Ya5eQ_QfAog
3D変換有効
http://www.youtube.com/watch?v=9jGvCdthQso
VP9
http://www.youtube.com/watch?v=aPkyPdubqDs
WordPress:誰かが記事をコピーしたら教えてくれるプラグインCCC(Check Copy Contents)を作ってみた。 | 着ぐるみ追い剥ぎペンギン
誰かが、あなたのブログの文章をコピーしたら、そのコピーされた箇所とページのURLを、こっそりとあなたにメールで通知します。
(リンク先より引用)
という恐ろしい WordPress プラグインがありまして、それに対する防御策の実験です。
以下のコードを実行する <script> タグをページに挿入することで、copy イベントから window.getSelection() や document.selection.createRange() が呼ばれた場合に警告を表示して、ダミーのデータ(「輝け」)を返します。
function hook (obj, name, func) {
var orig = obj [name];
var k = '__prox_' + name;
if (!obj [k]) {
obj [k] = orig;
}
obj [name] = func;
return orig;
}
function hookSelection () {
function msg (s) {
alert (location.href + '\n\n' + s + ' is called from oncopy event.');
}
if (window.getSelection) {
hook (window, 'getSelection', function () {
if (!window.event || window.event.type !== 'copy') {
return window.__prox_getSelection ();
}
msg ('window.getSelection');
var sel = {
anchorNode: null,
anchorOffset: 0,
focusNode: null,
focusOffset: 0,
toString: function () { return 'Shine'; }
};
return sel;
});
}
if (document.selection.createRange) {
hook (document.selection, 'createRange', function () {
if (!window.event || window.event.type !== 'copy') {
return document.selection.__prox_createRange ();
}
msg ('document.selection.createRange');
var rng = {
setStart: function () { },
setEnd: function () { },
cloneContents: function () { return document.createTextNode ('Shine'); },
text: 'Shine',
htmlText: 'Shine',
toString: function () { return 'Shine'; }
};
return rng;
});
}
}
hookSelection ();
問題のプラグインの現状のコードがダミーのデータを消化できる程度に偽のプロパティを用意してありますが、ダミーを返す代わりに問答無用で例外を投げちゃってもいいかも知れません。
あと document.getSelection() も潰した方がいいかも。
copy イベント以外での監視には対応していないので、例えば window.setInterval() で監視、など防御策に対する対抗措置が取られると対応が難しいです。スパイ目的ではなく動的なウェブ表現のために選択範囲の取得を行うページもあるので、全てをブロックするという訳にもいかないと思うので。
こんな面倒な方法ではなくて、単にブロックリストに以下のように追加する手もありますが、パス名を変更されるとブロックできません。
*/wp-content/plugins/check-copy-contentsccc/
ブロックリストにおいて * から始まる URL だとハッシュ化されない、というのもマイナスポイント。
2016-02-12 イベント外から呼び出されると window.event が null のためエラーになるので修正しました(赤字部分)。
広告を消してくれるブラウザ拡張機能「Adblock Plus」の秘密 - GIGAZINE
Adblock Plus が広告を受け入れるようになったのに対抗して、広告機能を削除した Adblock Edge というフォークが出たりといった動きもあるようで。
【CSS】Mozilla広告ブロック Part7かな【Adblock】の 688- あたり。
Internet Explorer 8 以降で F12 キーを押すと表示される「F12 開発者ツール」(F12 Developer Tools)。ちなみに F12 も正式名称の一部のようです。
CSS のタブにはページ内のスタイルシートを選択するリストボックスがありますが、@import で読み込んだ相対パスのスタイルシートが、少なくとも IE9 では(IE8、IE10 は試していないので不明)、正しくない URL で表示されます。
選択時に表示されるスタイルシートの内容と実際のページのレンダリング結果では正しく本来の URL のスタイルシートが反映されています。
index.html から直接読み込まれている import.css は正しい URL です。
<link REL="stylesheet" type="text/css" HREF="css/import.css">
import.css から以下のように読み込まれている各ファイルは間違った URL になっています。
@import url("./base.css");
@import url("./common.css");
@import url("./page.css");
@import url("./format.css");
JavaScript で document.styleSheets[*].imports[*].href を参照すると開発者ツールと同じように間違った URL が得られます。同じ算出ルーチンを使っているか、開発者ツール自体がそのプロパティを参照してるのかも知れません。
PC カテゴリーの記事を表示しています。