我需要改变第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)。 我怎样才能做到这一点 ?
认为这会工作...
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;
}
它认为这种方式。 JavaScript的运行在浏览器中,也就是说,Chrome浏览器。 Chrome浏览器可以看到当前加载的页面,但没有这仍然是服务器上的HTML文件的知识,直到它们被带入浏览器。 你可以做的是有一个包含的iFrame logged.html不可见(也许1x1像素的,或者与位置固定的位置在页面(左:4000px),那么你可以参考的IFRAME,并从元素还有,这一个说明如何在一个iFrame元素基准: 从iframe中的getElementById
我想这可能会帮助你......不要对我太狠心。 这是我的第一篇文章: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);