私は、WinForm と HTML5 を組み合わせた小さなものを作りたいだけなのですが、突然、そこに WeChat の Web バージョンを埋め込むことに興味が湧いてきました。 さて、アイデアが浮かんだら、行動に移しましょう。最終的な効果は次のようになります。 当初は、ページに iframe を埋め込んで https://wx.qq.com を指すようにするつもりでしたが、あまりに無知だったため、WeChat ウェブバージョンが自動的にジャンプしてしまいました。結果は次のとおりです。 そこで、iframe リダイレクトを防ぐ方法をオンラインで検索しました。それは、iframe タグに security="restricted" と sandbox="" という 2 つの属性を追加するというものでした。前者はIEのjs無効化機能、後者はHTML5の機能です。 リダイレクトを防ぐには、 その後、このジャンプは実際には元のページを閉じてからジャンプ ページを参照していることがわかりました。したがって、ページ終了イベント onbeforeunload を使用してジャンプを防ぐことができます。そこで、次のコードをページに追加します。 document.body.onbeforeunload = 関数 (イベント) { var rel = "asdfawfewf"; if (!window.event) { イベントの戻り値 = rel; } それ以外 { window.event.returnValue = rel; } }; その後、結果は依然として次のようになることがわかりました。 理由は何ですか?事件に対して何の反応もないのですか?それともWeChatウェブ版の飛躍が凄すぎるのでしょうか?この事件を無視するのですか?そこで、空の HTML を作成し、検証のためにこのイベントだけを追加しました。 <!DOCTYPE html> <html lang="ja" xmlns="http://www.w3.org/1999/xhtml"> <ヘッド> <メタ文字セット="utf-8" /> <タイトル></タイトル> </head> <本文></本文> <スクリプト> document.body.onbeforeunload = 関数 (イベント) { var rel = "asdfawfewf"; if (!window.event) { イベントの戻り値 = rel; } それ以外 { window.event.returnValue = rel; } }; </スクリプト> </html> 結果は実現可能です: ただし、iframe をページに埋め込んだ後は直接ジャンプしてしまいます。次のコードを試してください。 <!DOCTYPE html> <html lang="ja" xmlns="http://www.w3.org/1999/xhtml"> <ヘッド> <メタ文字セット="utf-8" /> <タイトル></タイトル> </head> <本文> <iframe src="https://wx.qq.com/" frameborder="0" style="position: absolute;border: navajowhite;left: 0;height: calc(100% - 30px);width:100%"> </iframe> </本文> <スクリプト> document.body.onbeforeunload = 関数 (イベント) { var rel = "asdfawfewf"; if (!window.event) { イベントの戻り値 = rel; } それ以外 { window.event.returnValue = rel; } }; </スクリプト> </html> 困惑したとき、この方法をオンとオフに切り替えて、うまくいくかどうかを確認しました。突然、ページを開いてから短時間で閉じると、onbeforeunload イベントがトリガーされないことに気付きました。数秒待ってからページを閉じると、イベントがトリガーされ、プロンプトが表示されます。 さて、iframe を遅延させて src 値を割り当ててみます (ここでは JQuery が参照されています)。 <!DOCTYPE html> <html lang="ja" xmlns="http://www.w3.org/1999/xhtml"> <ヘッド> <メタ文字セット="utf-8" /> <タイトル></タイトル> <script src="scripts/jquery-2.2.3.js"></script> </head> <本文> <iframe id="iframe" frameborder="0" style="position: absolute;border: navajowhite;left: 0;height: calc(100% - 30px);width:100%"> </iframe> </本文> <スクリプト> $(関数() { setTimeout(関数() { iframe.src = "https://wx.qq.com/"; },5000); }); document.body.onbeforeunload = 関数 (イベント) { var rel = "asdfawfewf"; if (!window.event) { イベントの戻り値 = rel; } それ以外 { window.event.returnValue = rel; } }; </スクリプト> </html> 結果は成功しました。このページを離れるかどうかを尋ねるプロンプトが表示されます。[滞在] ボタンをクリックします。成功への飛躍はありません。下の写真は完成品です。 完了です。チャットやファイルの転送は普通にできますが、スクリーンショットを撮ることはできません。 欠点は、ログインを完了するには、ポップアップのキャンセルボタンを 2 回クリックする必要があり、1 回目はページを開き、2 回目はコードをスキャンした後にページが再びジャンプすることです。現在、この問題を解決する方法はありません。この問題を解決する方法を知っている友人が私に何か提案してくれることを願っています。タイムリーに返信します。123WORDPRESS.COM ウェブサイトをサポートしていただき、誠にありがとうございます。 |
注意を払う必要があります。HTML Police がコードを調べて、意味のないタグをすべて見つけ出す...
この記事の例では、複数のカウントダウンを同時に設定するためのVueの具体的なコードを参考までに共有し...
目次1. はじめに2. Windows用Dockerをインストールする1. Windows用Dock...
上の記事で、SWFObject V1.5 の使い方の紹介は一旦終了です。これから、SWFObject...
システム環境: Win10 64ビットMySQL バージョン: mysql-5.7.18-winX6...
シナリオmyBuket の static/material/ ディレクトリなど、Alibaba Cl...
このロゴを .rar ファイルとしてローカルに保存し、解凍して効果を確認することができます。よりシン...
開発の背景:最近、私はバッチ データを MySQL データベースにインポートする機能に取り組んでいま...
nginx バージョン 1.11.3次の構成を使用すると、検証は無効になり、クロスドメインの問題が依...
目次1. MySQL ワイルドカード ファジー クエリ (%,_) 1-1. ワイルドカードの分類1...
目次1. サーバーAのmy.cnfファイルを変更する2. サーバーBのmy.cnfファイルを変更する...
最近、ブルートフォース攻撃によるサーバのクラッキングが頻発しています。侵入行為を大まかに分析し、よく...
float の使用例左サスペンション: float:left;右サスペンション: float:rig...
問題を見つける最近、仕事で問題が発生しました。InnoDB タイプの SQL ファイルを実行すると、...
イメージを構築するイメージを構築するには、主に 2 つの方法があります。実行中のコンテナをイメージに...