Объект не поддерживает свойство или метод 'createContextualFragment' - PullRequest
1 голос
/ 23 декабря 2011

Сотрудник использует 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 но я не думаю, что это относится, поскольку это работает на моей машине IE9 без iframe.

Шаги, которые я предпринял:

  • Я увидел, что DOCTYPE по умолчанию не сделал 'я не могу использовать наборы кадров, поэтому я обменял его на тот, который делает, но это не помогло: то же поведение.

Есть предложения?

1 Ответ

5 голосов
/ 08 марта 2013

У меня была похожая проблема, и добавление этого javascript на мою страницу решило проблему. В моем случае это было связано с компонентом activewidget, вызывающим createContextualFragment. Я объявил этот 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>

Надеюсь, это поможет.

Федя

...