0

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 を使用してみましたが、ポストバックではなく、新しいページ要求であるため、どちらも問題を解決していません。

助けたり、解決策を提供しようとする人に、前もって感謝します。

4

0 に答える 0