403ステータスは、サーバー(assets.tumblr.com)がISPではなくリクエストをブロックしたことを意味します。サーバーがこれを行う最も一般的な理由は、(a)十分なアクセス権でログインしていないため、および/または(b)サーバーが必要なリファラーヘッダーおよび/またはCookieを受信しなかったため、および/または(c )リクエストは、サーバーがブラックリストに登録したIPアドレスから送信されました。プロキシサーバーを使用すると、一部のサイトでこれらのいずれかまたはすべてをトリガーできます。
これは、ユーザーまたはプロキシサーバーがそのファイルからブロックされている場合、ユーザースクリプトが使用するリモートJavaScriptを挿入する標準的な方法もブロックされることを意味します。
このGreasemonkeyを回避するために、ローカルコピーからjavascriptファイルを埋め戻すことができます。これをする:
Insure Tumbler has prototype.user.js
以下に示すように、ファイルを作成します。temp
マシン上のフォルダにないディレクトリに配置します。
- 参照した
prototype_and_effects.js
ファイルをダウンロードして、同じフォルダーに配置します。別の(またはプロキシなしの)、または別のブラウザプロファイルなどを使用する必要がある場合があります。(私にとっては、直前のリンクを右クリックするだけで、問題なくダウンロードできます。)
- Greasemonkeyを使用してスクリプトをインストールします。(Firefox:ファイル->開く(CtrlO)が機能します。)
Prototype
スクリプトはとライブラリをテストし、Effect
ライブラリがない場合はローカルにロードします。Tumblrを再び機能させるにはさらに必要な場合がありますが、そうであれば、それはこの質問の範囲を超えています。
- Firefox+Greasemonkeyで動作します。Chrome + Tampermonkey(テストされていません)で動作するはずです
@resource
。ストレートChromeなど、サポートされていない場所では動作しません。
// ==UserScript==
// @name _Backfill Prototype and Effect libraries on Tumblr pages
// @match http://tumblr.com/*
// @match http://www.tumblr.com/*
// @match https://tumblr.com/*
// @match https://www.tumblr.com/*
// @resource PandE_src prototype_and_effects.js
// @grant GM_getResourceText
// ==/UserScript==
//-- Does this page load prototype_and_effects.js?
var protoScriptNode = document.querySelector ("script[src*='prototype_and_effects']");
if (protoScriptNode) {
//console.log ("Page uses prototype_and_effects.js.");
//-- Are Prototype and Effects loaded?
var P = unsafeWindow.Prototype;
var E = unsafeWindow.Effect;
if (P && P.Version && E && E.BlindDown) {
//console.log ("Everything's loaded, no action needed.");
}
else {
//console.log ("Loading prototype_and_effects.js");
var PandE_src = GM_getResourceText ("PandE_src");
var scriptNode = document.createElement ('script');
scriptNode.type = "text/javascript";
scriptNode.textContent = PandE_src;
var targ = document.getElementsByTagName ('head')[0];
targ.appendChild (scriptNode);
}
}
else {
//-- No action needed
//console.log ("Page doesn't use prototype_and_effects.js.");
}