Object不支持属性或方法'createContextualFragment'

时间:2011-12-23 19:18:00

标签: javascript frame doctype

同事正在使用Ipipeline在一帧中显示一些数据。我需要相同的功能并克隆了大部分代码。原始pgm在CS.net环境中使用母版页,而我在使用用户控件而不是母版页的VB.net环境中编码。

如果我在浏览器中单独查看HTM,则会显示页面并且下拉列表可以正常工作。但是当我在一个非常简单的页面中嵌入iframe标签并运行时,页面会显示但是我得到了:

Microsoft JScript运行时错误:当单击页面上的第一个下拉列表时,对象不支持属性或方法' createContextualFragment'

此测试页面如下:

<body>
    <form id="form1" runat="server">
    <div>
     <iframe id="frame1" src="../Ipipeline/xxxxx.htm"></iframe>
    </div>
    </form>
</body>

我确实看到了StackOverflow文章 StackOverflow article但我不认为它适用,因为这可以在没有iframe的IE9机器上运行。

我采取的步骤:

  • 我看到默认的DOCTYPE不允许使用框架集,因此我将其交换为一个框架集,但这并没有帮助:相同的行为。

有什么建议吗?

1 个答案:

答案 0 :(得分:5)

我有类似的问题,并将此javascript添加到我的页面修复了问题。 在我的例子中,它与调用createContextualFragment的activewidget组件有关。我在所有其他javascript链接之后声明了这个javascript,它为我解决了这个问题。

<script type="text/javascript">
if ((typeof Range !== "undefined") && !Range.prototype.createContextualFragment)
{
    Range.prototype.createContextualFragment = function(html)
    {
        var frag = document.createDocumentFragment(), 
        div = document.createElement("div");
        frag.appendChild(div);
        div.outerHTML = html;
        return frag;
    };  
}
</script>

希望它有所帮助。

菲德