使jQuery DOMWindow中包含的链接在同一窗口中打开

时间:2011-01-31 20:00:05

标签: jquery ajax dom

我有一个jQuery DOMWindow,它在我的一个网页上加载了AJAX。由于各种技术原因,我必须使用AJAX而不是iFrame来加载内容。目前,位于DOMWindow内的任何超链接都会导致浏览器重新加载新页面,而不是简单地打开同一DOMWindow中的内容。

有没有办法在同一个DOMWindow中打开超链接。我尝试在超链接代码中包含target="_self"

这是我的jQuery DOMWindow的配置:

                $('.AjaxDOMWindow').openDOMWindow({
                anchoredClassName:'DOMWindow',
                draggable: 1,
                eventType:'click',
                height:500,
                loader:1,
                loaderHeight:16,
                loaderImagePath:'/js/jquery/DOMWindow/animationProcessing.gif',
                loaderWidth:17,
                positionLeft:0,
                positionTop:0,
                positionType:'centered',
                width:700,
                windowHTTPType:'get',
                windowSource:'ajax'
            });

这是有问题的超链接:

<a href="/foo/foo/edit_map_pin_more.htm?mAddressBox0=FALSE&width=800&height=600&mPin_ID=5"><b>View More Icons</b></a>

2 个答案:

答案 0 :(得分:1)

我认为调用Dom窗口插件没有绑定到锚标签。 我将上面的函数放在document.ready函数中,该函数在dom加载后绑定并且有效。

$(document).ready(function(){
    $(AjaxDOMWindow ).openDOMWindow({         
        anchoredClassName:'DOMWindow',
        draggable: 1,
        eventType:'click',
        height:500,
        loader:1,
        loaderHeight:16,  
        loaderImagePath:'/js/jquery/DOMWindow/animationProcessing.gif', 
        loaderWidth:17,
        positionLeft:0,
        positionTop:0,
        positionType:'centered',
        width:700,
        windowHTTPType:'get',
        windowSource:'ajax'
    });
}); 

答案 1 :(得分:0)

我想问题是真正意义上的没有窗口。主页面内只有div作为DOMWindow。因此,该div中的任何链接肯定会刷新主文档。

保持所有内容相同并添加

$('.AjaxDOMWindow a').live("click", function(){
    $(this).openDOMWindow({
        anchoredClassName:'DOMWindow',
        draggable: 1,
        eventType:'click',
        height:500,
        loader:1,
        loaderHeight:16,
        loaderImagePath:'/js/jquery/DOMWindow/animationProcessing.gif',
        loaderWidth:17,
        positionLeft:0,
        positionTop:0,
        positionType:'centered',
        width:700,
        windowHTTPType:'get',
        windowSource:'ajax'
    });
});