youtube.com サイトで指定された HTML コードを使用して、YouTube ビデオが asp.net ページに追加されるサイトを開発しています。プログラムを実行すると、Web ページに youtube ビデオが表示されます。しかし、奇妙なことに、ビデオ表示領域にマウスを移動すると、ページのポストバックが発生します。プログラムをデバッグモードで実行すると、これを見つけることができます。
シナリオを正確に再現するために、プロジェクトで行った手順を書いています。
1) visula studio 2010 で > asp.net Web アプリケーション プロジェクトを開きます (言語として c# を使用) 2) cat.aspx などのページを追加します 3) cat.aspx で以下のようにコードを記述します
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Label ID="lblVideo" runat="server"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
4) cat.aspx.cs で、page_load に次の行を記述します。
lblVideo.Text = "<iframe width=\"620\" height=\"349\" src=\" http://www.youtube.com/embed/WoTsE7pbuKg \" frameborder=\"0\" allowfullscreen>< /iframe>";
5) youtube.com で指定された上記を置き換えることができますが、必ず "http:" を設定し、" を \" でエスケープしてください (YouTube ビデオの HTML コードを取得するには、www.youtube.com にアクセスしてください)。 、ビデオまたは有名な曲をクリックすると、ビデオの下に「共有」メニューが表示されます。それをクリックすると、別のオプション「埋め込み」が表示されます。それをクリックすると、コードが表示されます)
6) Web アプリ プロジェクトを実行すると、YouTube ビデオが表示されます。
7) Page_load イベントにブレーク ポイントを設定して実行し、マウスをビデオ表示領域に移動します。マウスがビデオ表示領域に入るたびに、ポストバックが発生することがわかります。
8) Firefox と InternetExplorer に最新のフラッシュをインストールしましたが、この問題は Firefox と IE でのみ発生し、Chrome では発生しません。この問題は、Updatepanel を使用している場合にのみ発生します。また、コントロールが分離コードにヒットするたびに、ページがポストバックしない (IsPostBack) が false であることもわかりました。アドレスバーにURLを入力してEnterキーを押す方法として、初めてページが要求されたようです
私は asp:PostBackTrigger と asp:AsyncPostBackTrigger を使用してみましたが、ポストバックではなく、新しいページ要求であるため、どちらも問題を解決していません。
助けたり、解決策を提供しようとする人に、前もって感謝します。