使用jsonp将divX从第2页加载到第1页以绕过相同的原始策略

时间:2013-11-02 18:14:21

标签: javascript json jquery jquery-callback

我正在尝试使用此功能从其他页面加载div,

$('#result').load('page2.php #divX')

但即使page1和page 2使用在两个页面的头部链接的相同JavaScript文件,该页面中包含的JavaScript也不会起作用。所以我认为这是相同的原产地政策。我如何使用jquery和json来绕过这个限制?

像这样的Ajax,但我不知道从哪里开始。

(function($) {
    var url = 'page2';
    $.ajax({
       type: 'GET',
        url: url,
        async: false,
        contentType: "application/json",
        dataType: 'jsonp'
    });
})(jQuery);

我知道如果我没错,我必须在第2页写一些回调,我该怎么做?

添加。

这是Page1。

$('#Loadfrompage2').click(function() {
$('#result').load('../page2.php #divX')
});

第2页内容。

<div id="divX">
            <input name="B" type="submit" value=" ">
            <input name="P" type="submit" id="Q" value=" ">
             <input name="A" type="submit" value=" ">

1 个答案:

答案 0 :(得分:1)

管理新插入的html的代码有两种方法,例如使用load()时。您必须在插入新元素后对其运行任何事件绑定代码(或插件),或者必须使用绑定到DOM树中作为页面中的permament资产的元素的事件delgation

委派方法(考虑未来或替换元素):

而不是$('.myButtonclass').click....使用:

$(document).on('click', '.myButtonclass', function(){

    /* same code you already have in current click handler*/

})

插入方法后:

$('#content').load('path/to/server', function(){
   /* new html exist now*/
   $(this).find('.buttonClass').click....
})

FYI- jsonp用于检索跨域的JSON数据...与html非常不同。由于引用jsonp

,该主题的主题变得混乱