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# 设置 iFrame src。我会在这里回答。

我完全赞成“为工作提供正确的工具”,并且我自己也经常使用这个口头禅——但只有当其他工具“错误”时。这还没有在这里成立。有人可以提供一个很好的技术理由为什么不应该在代码隐藏中完成?

我认为@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;
}

希望这会有所帮助 - 虽然它不在我的脑海中,所以如果它第一次不起作用,请不要diss我!

于 2012-03-20T13:08:29.977 回答