タイトルがあいまいである場合は申し訳ありませんが、説明するのが最も簡単な質問ではありません。現在のところ、XmlHttpRequest.prototype.open = function(){return oldOpen(...)}
のようにブラウザに組み込み関数をラップ/オーバーロードして、ページ内のスクリプトが実行される前に実行したい場合は、前に実行するブラウザ拡張機能/アドオンを使用する必要がありますドキュメントが解析され始めます。つまり、ブラウザの拡張機能では、インストールに同意するユーザーのコンバージョン率が低いことがよくあります。私は同じことをするためにブックマークレットを使用できるようになりたいです(とPinterestは、ブックマークレットはそれらの障壁ではないことを示しています!)。しかし、残念なことに、ブックマークレットは、ドキュメントが読み込まれた後、長い間実行されます。プリロードコードの注入を模倣するようにページを "リロード"するJSライブラリ?
私がやりたいこと、理論的には考えていることは、ページをリロードすることですが、スクリプトはすでに挿入されています。プロセスは次のようになります。
window.location
からXHRを介してダウンロードしてください。- すべてのスクリプトタグを含め、DOMからすべての要素を削除します。たぶん良いユーザーエクスペリエンスのための素敵なスプラッシュ画面を投げるかもしれません。
- すべてのタイムアウトと間隔をクリアします(FFとChromeではIDが1からカウントアップするように見えるため、AFAIKは事前知識が必要ありません)。
- 空のドキュメントにはない
window
とdocument
のすべてのキーを削除/未定義...拡張機能がインストールされている可能性があるため、実際に参照用の空白ドキュメントを取得するにはiframeトリッキー/メッセージングが必要になることがあります。 - 空白のドキュメントにスクリプトを注入します。
- スクリプトを含む元のXHRオリジナルドキュメントのすべてのタグを再挿入し、新しいコンテキストで再読み込みして再実行する必要があります。
- スプラッシュ画面をタップすると、行こうとしています!
今、私は完全にこれを盗んでオープンソースにしたいと思っていますが、これまでに誰かがこのようなことを試みましたか?それはたくさんの仕事になるでしょう。私たちが今使っているものがスティックの四角い玉に相当するものでなければ、私はむしろホイールを再発明しません。
iframeでこれを実装できると感じました。 – Hello71
参考までに、これはプロジェクトです:https://github.com/bpartridge/angryponies – btown