ASP.NET 的框架 javascript 不允许我呈现原始 HTML IFRAME
Posted
技术标签:
【中文标题】ASP.NET 的框架 javascript 不允许我呈现原始 HTML IFRAME【英文标题】:ASP.NET's framework javascript won't let me render a raw HTML IFRAME 【发布时间】:2011-10-05 04:20:52 【问题描述】:我有一个 UserControl,它不是将标签放入其 ascx 标记文件,而是在其代码隐藏中覆盖 render() 以写出使用 XSLT 从 XML 生成的 Xhtml。
我想渲染出一个 iframe(作为解决 IE6 的 SELECT z-index 错误的技巧),但是一旦我编辑 xslt 以渲染一个 iframe,ASP.NET 的 ScriptResource.axd 输出中就会出现 javascript 错误(但是不在 Firefox 中):
错误:Sys.ArgumentNullException:值不能为空。参数名称:panelsCreated[0]
我在 VS2010 中调试时显示的行是if (e) throw e;
$type = Sys.WebForms.PageLoadedEventArgs = function PageLoadedEventArgs(panelsUpdated, panelsCreated, dataItems)
/// <summary locid="M:J#Sys.WebForms.PageLoadedEventArgs.#ctor">The arguments for the PageRequestManager's pageLoaded event. The pageLoaded event is raised after the DOM has been updated.</summary>
/// <param name="panelsUpdated" type="Array">An array of UpdatePanels that were updated.</param>
/// <param name="panelsCreated" type="Array">An array of UpdatePanels that were created.</param>
/// <param name="dataItems" type="Object" mayBeNull="true"></param>
var e = Function._validateParams(arguments, [
name: "panelsUpdated", type: Array,
name: "panelsCreated", type: Array,
name: "dataItems", type: Object, mayBeNull: true
]);
if (e) throw e;
Sys.WebForms.PageLoadedEventArgs.initializeBase(this);
this._panelsUpdated = panelsUpdated;
this._panelsCreated = panelsCreated;
this._dataItems = dataItems || new Object();
ASP.NET 在生成纯 HTML IFRAME 元素时是否存在问题?
【问题讨论】:
您的<iframe>
元素是否正确关闭,即<iframe></iframe>
而不是<iframe />
?
是的,有一个单独的结束标签。我已经设置了 id 和 src 属性。
【参考方案1】:
将脚本管理器的脚本模式更改为 release 对我有用
在页面的 OnInit 方法中我添加了这一行
ScriptManager.GetCurrent(Page).ScriptMode = ScriptMode.Release;
【讨论】:
【参考方案2】:我通过在<iframe></iframe>
中添加文本解决了这个问题。如果我有用户使用不支持 iframe 的浏览器,此文本将被另一个元素覆盖!
【讨论】:
以上是关于ASP.NET 的框架 javascript 不允许我呈现原始 HTML IFRAME的主要内容,如果未能解决你的问题,请参考以下文章
如何在 JavaScript 文件中使用 Razor 语法在 asp.net 核心框架上生成操作链接?
ASP.NET MVC 验证:导致 javascript 属性?
通过ASP.NET MVC框架 + 原生JavaScript + Ajax + SQL SERVER 实现一个简单的有论坛功能的网站(有通过iis发布的例子)