window.locationを設定すると、元のページがアンロードされてから、新しいページがブラウザによって読み込まれます。つまり、新しいページが読み込まれる前にスクリプトがなくなり、新しいHTMLをもう修正できなくなります。
この現象は、ブラウザのセキュリティモデルに固有の現象です。それがなければ、選択した任意のWebサイトにJavaScriptを注入することができ、セキュリティ上の大きなリスクになります。あなたが求めているのはいわゆるXSS(クロスサイトスクリプティング用)です。これはブラウザがいわゆるSOP(同じ元のポリシーの場合)を適用することによって妨げられます。
安全な方法でこの制限を回避するには、いくつかの一般的な方法があります。
あなたのJavaScriptと元のサイトの両方にサービスを提供するためのプロキシを設定し
。このようにして、スクリプトと元のサイトの両方が同じドメインから来て、ブラウザの同じ元のポリシー(SOP)を満たします。カスタムスクリプトを最上位のウィンドウに配置して、元のサイトをiframe内で実行できます。あるいは、プロキシを介して取得されるスクリプトをHTMLに挿入することもできます。
スクリプトをブラウザのアドオンまたはユーザスクリプトとして実行します。これを行うことを選択した場合、ユーザは特別な権限を持ってローカルで実行する権利をスクリプトに与える必要があります。 Greasemonkeyは数年前にFirefox用のクライアントサイドスクリプトを普及させましたが、最近彼らは勢いを失ったようです。
あなたのスクリプトを含めるようにサイトの所有者に依頼してください。私はこれがあなたの状況にとって有効な選択肢であるとは思わない。しかし、それが有効なオプションであれば、それは間違いなく最も単純なものです。
サイトの読み込み後にスクリプトを実行するようにユーザーに依頼します。これはおそらくあなたにとっても有効ではありませんが、有効であれば、もう一度非常に簡単な解決策になります。
googleで「dom操作」を参照してください。 –
私はそれを作ることに失敗しました。私は6時間以上解決策を探しています。これが私の最後の希望です。 – virusbogdan
window.locationがロードされたページにスクリプトを追加したいですか?このページはあなたのものではないと思いますか? – Jivings