5

YouTubeビデオを埋め込んだIFrameがあります。ユーザー(管理者)がビデオの新しいsrc(URL)を貼り付け、IFrameが新しいソースを取得できるテキストボックスを作成したいと思います。これが私がこれまでに持っているものです:

protected void Edited_Click(object sender, EventArgs e)
    {
       // HtmlControl frame1 = (HtmlControl)this.FindControl("frame1");
        string url = TextBox1.Text;
        frame1.Attributes["src"] = url;

    }

そして、htmlコードにはIframeがあります:

<div id="video">
    <iframe title="YouTube video player" runat="server" width="420" 
            frameborder="1" style="height: 265px; float: left; 
            text-align: center;" id="frame1" 
        name="frame1" align="middle"></iframe>
       <br />
       </div>

最初はsrcを設定していませんが、テキストボックスにURLを貼り付けてボタンを押すと、Iframeに何も表示されません。

4

2 に答える 2

5

他の回答は質問に答えません、彼らは代わりを提供します。問題は、C#からiFramesrcを設定する方法です。ここでお答えします。

私はすべて「仕事に適したツール」を求めており、そのマントラを自分でよく使用していますが、他のツールが「間違っている」場合に限ります。それはここでは確立されていません。誰かがこれをコードビハインドで行うべきではないという技術的な理由を提供できますか?

@Pepysが経験している問題は、彼がまだ提供していないURLの何かが原因である可能性があると思います。たとえば、彼のURLには、エスケープする必要のあるアンパサンドやその他の文字が含まれている可能性があります。

次のコードは私にとってはうまく機能します:

excelframe.Attributes["src"] =
  @"https://r.office.microsoft.com/r/rlidExcelEmbed?"
+ @"su=-0000000000"
+ @"&Fi=zzzzzzzzzzzz!111"
+ @"&ak=x%3d9%26x%3d9%26x%3d!zzzzzzzzzz"
+ @"&kip=1"
+ @"&AllowTyping=True"
+ @"&ActiveCell='sheet1'!C3"
+ @"&wdHideGridlines=True"
+ @"&wdHideHeaders=True"
+ @"&wdDownloadButton=True";
于 2012-04-05T01:22:24.510 に答える
2

これは、サーバー側ではなく、クライアントブラウザで行う必要があります。私は次のようなものを提案します:

// (Add inside script element in head of page html)

window.onload = function() {
    document.getElementById('<id of input>').onchange = function() {
        changeFrameUrl();
    }
};

function changeFrameUrl() {
        var inputVal = document.getElementById('<id of input>').value;
        document.getElementById('<id of iframe>').src = inputVal;
}

これがお役に立てば幸いですが、頭のてっぺんから外れているので、初めて機能しない場合でも気を悪くしないでください。

于 2012-03-20T13:08:29.977 に答える