Javascript 从另一页按Id获取元素

Javascript 从另一页按Id获取元素,javascript,replace,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")

如果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页上是否存在元素,以便更改第1页的内容

我必须改变这个

  if (document.getElementById("page1_element"))

具有正确的路径,即第2页(在我的示例中为logged.html)。我该怎么做呢?

我想这样行吗

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

返回条件?a:b
表示:

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

我想这会有用的

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

返回条件?a:b
表示:

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

这样想吧。JavaScript在浏览器中运行,比如说Chrome。Chrome可以看到当前加载的页面,但不知道服务器上仍然存在的html文件,直到它们进入浏览器。
您可以使用一个包含logged.html的iFrame,该iFrame不可见(可能是1x1像素,或者是一个固定位置,其位置远离页面(左:4000px)。然后您可以引用iFrame并从中获取元素,这一部分解释了如何引用iFrame中的元素:

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

我认为这可能会帮助你。。。 别对我太苛刻。这是我的第一篇帖子: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);
var-element\u-change\u-content\u-page1=“element\u-id\u-page1”;
var page2_datatype=“html”;
var filename_page2=“logged.html”;
var target_element_id_page2=“element_id_page2”;
变量目标元素类型页面2=“div”
$.get(文件名\u第2页,函数(响应,状态){
//您还可以使用jQuery“$.post()”方法而不是“$.get()”
//资料来源:http://www.w3schools.com/jquery/ajax_get.asp
var数据=$(''+响应+'');
var target_element=data.find(target_element_type_page2+'#'+target_element_id_page2)[0];//可能有更多具有相同id的div元素:指定索引
if(目标元素的类型!==“未定义”){
//Page2包含指定的元素
var container=document.getElementById(元素更改内容第1页);
container.innerHTML=“内容已更改!!!”;
}否则{
//页面2不包含指定的元素
}
},第2页(数据类型);

我想这可能会帮助你。。。 别对我太苛刻。这是我的第一篇帖子: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);
var-element\u-change\u-content\u-page1=“element\u-id\u-page1”;
var page2_datatype=“html”;
var filename_page2=“logged.html”;
var target_element_id_page2=“element_id_page2”;
变量目标元素类型页面2=“div”
$.get(文件名\u第2页,函数(响应,状态){
//您还可以使用jQuery“$.post()”方法而不是“$.get()”
//资料来源:http://www.w3schools.com/jquery/ajax_get.asp
var数据=$(''+响应+'');
var target_element=data.find(target_element_type_page2+'#'+target_element_id_page2)[0];//可能有更多具有相同id的div元素:指定索引
if(目标元素的类型!==“未定义”){
//Page2包含指定的元素
var container=document.getElementById(元素更改内容第1页);
container.innerHTML=“内容已更改!!!”;
}否则{
//页面2不包含指定的元素
}
},第2页(数据类型);

这是Javascript而不是Java:)最好知道您在不同选项卡/窗口中的两个页面或框架中的第二个页面中编写的语言是什么?在同一个域中的页面?您可以使用ajax检查元素,如果您可以访问page2,使用一些框架会很有帮助,例如jQueryI有一个jquerry函数,可以将page1上的div id替换为所需div的内容page2.我使用这个jQuery(函数($){$('#result').load('page2.html#intro');但它不在page1的源代码中,尽管我可以在浏览器中看到正确的结果。我有两个单独的页面。page1(mysite.com/page1.html)必须在page2(mysite.com/page2.html)中查找div id这是Javascript而不是Java:)最好知道您在不同选项卡/窗口中的两个页面或框架中的第二个页面中编写的语言是什么?在同一个域中的页面?您可以使用ajax检查元素,如果您可以访问page2,使用一些框架会很有帮助,例如jQueryI有一个jquerry函数,可以将page1上的div id替换为所需div的内容page2.我使用这个jQuery(函数($){$('#result').load('page2.html#intro');但它不在page1的源代码中,尽管我可以在浏览器中看到正确的结果。我有两个单独的页面。page1(mysite.com/page1.html)必须在page2(mysite.com/page2.html)中查找div id。抱歉,我被误解了。我没有iframe,但有两个单独的页面。page1(mysite.com/page1.html)必须在第2页(mysite.com/page2.html)中查找div id。抱歉,我被误解了。我没有iframe,但有两个单独的页面。page1(mysite.com/page1.html)必须在第2页(mysite.com/page2.html)中查找div id。