2013-03-14 34 views
1

如果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; 
} 

获得ID,但我需要检查,如果元素是为了改变第1页的内容出现在第2页此代码的伟大工程。

我必须是第2页(在我的情况logged.html)正确的路径改变这种

if (document.getElementById("page1_element")) 

。我怎样才能做到这一点 ?

+1

这是Javascript而不是Java :)最好知道你在写什么语言 – cowls 2013-03-14 12:08:04

+2

在不同的标签页/窗口中的两页或在一个框架内的第二页?在同一个域上的页面? – 2013-03-14 12:09:55

+0

你可以使用ajax来检查元素,如果你有权访问page2,使用一些框架会很有帮助,比如jQuery – kidwon 2013-03-14 12:12:24

回答

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; 
} 
+2

对不起,我被误解了,我没有iframe,但有2个单独的页面。 (mysite.com/page1.html)必须在page2(mysite.com/page2.html)中寻找div id。 – marius 2013-03-14 12:23:59

+0

任何人都可以帮忙吗? – marius 2013-03-14 13:04:13

1

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

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); 
相关问题