从另一个页面获取Id的元素

时间:2013-03-14 12:06:42

标签: javascript replace

如果page2包含指定的元素,我需要更改page1的内容。如果我从同一页面获取id

,此代码非常有用
if (document.getElementById("page_element")) {
    var str = document.getElementById("destination").innerHTML;
    var n = str.replace("Login", "Logout");
    document.getElementById("destination").innerHTML = n;
}

但我需要检查第2页是否存在元素才能更改page1的内容。

我必须改变这个

  if (document.getElementById("page1_element"))

正确的路径是page2(在我的情况下为logged.html)。我怎么能这样做?

3 个答案:

答案 0 :(得分:2)

认为这样可行......

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表示:

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

答案 1 :(得分:1)

这样想。 JavaScript在浏览器中运行,例如Chrome。 Chrome可以查看当前加载的页面,但不知道服务器上仍然存在的html文件,直到它们被带入浏览器。 你可以做的是有一个包含不可见的logged.html的iFrame(可能是1x1像素,或者是一个位置偏离页面的固定位置(左:4000px)。然后你可以参考iFrame并从中获取元素在那里,这个解释了如何引用iFrame中的元素:getElementById from iframe

答案 2 :(得分:1)

我认为这可能对你有所帮助...... 不要太难我。这是我的第一篇文章: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);