0

我想从列表框中更改 iframe 的来源。这是我的代码。

<iframe id="iframeID" frameborder="0" width="100%" height="300px"></iframe>
   <asp:Button ID="btnView" runat="server" Text="Pop Up HTML Preview" 
               OnClientClick="ShowPopUp();" />

 ShowPopUp = function() {
      var x = document.getElementById('<%=ListBox1.ClientID %>');
      var val = x.options[x.selectedIndex].Value;
      document.getElementById("iframeID").src = val;

但是错误说我有一个未定义的 iframe。
怎么了?
请帮我。谢谢 :)

4

3 回答 3

0

使用value, JavaScript 区分大小写

 var val = x.options[x.selectedIndex].value;

并更改OnClientClick如下

<asp:Button ID="btnView" runat="server" Text="Pop Up HTML Preview" 
OnClientClick="ShowPopUp(); return false;" />

按钮单击事件向服务器发出完整的回发请求。因此,您的 Ifram 将在回发后再次具有默认 src 值。在这里,您没有将值作为默认 src。所以点击按钮后什么都不会得到。添加return false按钮后单击将不会在单击后回发。

于 2013-04-29T04:44:29.620 回答
0

如果它没有从 C# 中执行任何操作,则制作一个普通按钮 - ASP 倾向于在其控件的 ID 中添加花哨的前缀(如ContentPlaceHolder1_btnView),而这些前缀无法通过.IDC# 代码访问。因此,您可以通过浏览器的源代码检查器检查这些 ID(如果您将它们移动到其他地方,它们可以更改),或者使用

<input type="button" ID="btnView" Value="Pop Up HTML Preview" 
               OnClick="ShowPopUp();" />

(相应地修改你的JS)

于 2013-04-29T04:45:50.273 回答
0

您可以使用 jquery 更改源:

$("#content").attr('src', 'http://your new source here');

因此,当列表框中的选定项目发生更改时,您可以调用此方法。

于 2013-04-29T04:35:53.790 回答