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 元素时是否存在问题?

【问题讨论】:

您的&lt;iframe&gt; 元素是否正确关闭,即&lt;iframe&gt;&lt;/iframe&gt; 而不是&lt;iframe /&gt; 是的,有一个单独的结束标签。我已经设置了 id 和 src 属性。 【参考方案1】:

将脚本管理器的脚本模式更改为 release 对我有用

在页面的 OnInit 方法中我添加了这一行

ScriptManager.GetCurrent(Page).ScriptMode = ScriptMode.Release;

【讨论】:

【参考方案2】:

我通过在&lt;iframe&gt;&lt;/iframe&gt; 中添加文本解决了这个问题。如果我有用户使用不支持 iframe 的浏览器,此文本将被另一个元素覆盖!

【讨论】:

以上是关于ASP.NET 的框架 javascript 不允许我呈现原始 HTML IFRAME的主要内容,如果未能解决你的问题,请参考以下文章

如何在 JavaScript 文件中使用 Razor 语法在 asp.net 核心框架上生成操作链接?

ASP.NET MVC 验证:导致 javascript 属性?

通过ASP.NET MVC框架 + 原生JavaScript + Ajax + SQL SERVER 实现一个简单的有论坛功能的网站(有通过iis发布的例子)

什么是ASP.NET MVC?

javascript

ASP.NET MVC实现一个用户只能登录一次