我有一个嵌入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不会显示任何内容。
答案 0 :(得分:5)
其他回复没有回答这个问题,他们提供了另一种选择。问题是如何从C#设置iFrame src。我会在这里回答。
我全都是为“工作的正确工具”而且我自己也经常使用这种口头禅 - 但只有当其他工具“错误”时才会使用。这还没有确定。有人能提供一个很好的技术理由,为什么不应该在代码隐藏中完成这个?
我认为@Pepys遇到的问题可能是由于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";
答案 1 :(得分: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;
}
希望这会有所帮助 - 虽然它不是我的头脑,所以如果它不能第一次工作,请不要解雇我!