旨在在iframe中编写页面,但在IE中“Jquery未定义”但在其他地方工作

时间:2012-12-17 12:10:52

标签: jquery ajax internet-explorer iframe

我正在完成一个网站(www.pickmixmagazine.com/wordpress),我有一个功能,可以在其中一个大方块上点击,数据被加载到滑动iframe中(试试看!)我试图使用ajax从服务器加载信息并将数据写入iframe,如下所示。它在firefox和chrome中完美运行,就在IE中我不断收到错误'$'未定义,我无法访问任何Jquery。这是代码(我只包含了函数的ajax部分):

function changeFrame(i)
    {
        var elm = parent.document.getElementsByTagName('iframe')[0];
        var topval = $(elm).css('top');

        if(i!='' && i!='home' && window.top==window.self){
            //$('iframe.primary').attr('src', 'http://www.pickmixmagazine.com/wordpress/'+i);

            var ifrm = document.getElementById("mainframe")
            ifrm = (ifrm.contentWindow) ? ifrm.contentWindow : (ifrm.contentDocument.document) ? ifrm.contentDocument.document : ifrm.contentDocument;
            //var doc = w.document.documentElement;
            //w.contentWindow.location.replace('http://www.pickmixmagazine.com/wordpress/'+i);



            var xhr = $.ajax({
                    url: 'http://www.pickmixmagazine.com/wordpress/'+i,
                    success: function(data) {
                      ifrm.document.open();
                       ifrm.document.write(data);
                       ifrm.document.close();  

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

这听起来几乎就像导致与$的命名冲突。虽然这个问题只在IE中体现出来这一事实有点奇怪。

一些在黑暗中拍摄的内容,但您可以尝试取消定义$标识符并尝试在代理函数中运行代码:

jQuery.noConflict();
jQuery(function($) {
       //put all JQuery related code here.

 });