通过标识从另一个页面获取元素(Get element by Id from another page

2019-07-21 14:45发布

我需要改变第1页的内容,如果第2页包含指定的元素。 此代码的工作巨大的,如果我在同一页面获得ID

if (document.getElementById("page_element")) {
    var str = document.getElementById("destination").innerHTML;
    var n = str.replace("Login", "Logout");
    document.getElementById("destination").innerHTML = n;
}

但是,我需要检查,如果元素是为了改变第1页的内容出现在第2页。

我必须改变这种

  if (document.getElementById("page1_element"))

用正确的路径是第2页(在我的情况logged.html)。 我怎样才能做到这一点 ?

Answer 1:

认为这会工作...

var iframe = document.getElementById("iframeId"),
    doc = getFrameDocument(iframe);

doc.getElementById("page2_element_id"); // [DOM Element]

function getFrameDocument(iframe){
    return iframe.contentDocument ? iframe.contentDocument : iframe.contentWindow.document;
}

return cond ? a : b return cond ? a : b是指:

if ( cond ) {
    return a;
}
else {
    return b;
}


Answer 2:

它认为这种方式。 JavaScript的运行在浏览器中,也就是说,Chrome浏览器。 Chrome浏览器可以看到当前加载的页面,但没有这仍然是服务器上的HTML文件的知识,直到它们被带入浏览器。 你可以做的是有一个包含的iFrame logged.html不可见(也许1x1像素的,或者与位置固定的位置在页面(左:4000px),那么你可以参考的IFRAME,并从元素还有,这一个说明如何在一个iFrame元素基准: 从iframe中的getElementById



Answer 3:

我想这可能会帮助你......不要对我太狠心。 这是我的第一篇文章:P

var element_change_content_page1 = "element_id_page1";
var page2_datatype = "html";
var filename_page2 = "logged.html";
var target_element_id_page2 = "element_id_page2";
var target_element_type_page2 = "div"

$.get( filename_page2 , function(response, status){
//You can also use jQuery " $.post() " Method instead of " $.get() "
//Source: http://www.w3schools.com/jquery/ajax_get.asp
var data = $('<div>' + response + '</div>');
var target_element = data.find( target_element_type_page2 + '#'+ target_element_id_page2 )[0]; //There "might" be more div elements with the same id: specify index
if(typeof target_element !== 'undefined'){
    //Page2 contains specified element
    var container = document.getElementById( element_change_content_page1 );
    container.innerHTML = "Content is changed!!!";
} else {
    //Page2 DOES NOT contain specified element
}
}, page2_datatype);


文章来源: Get element by Id from another page