注意:当iframe的源更改时,我会看到有关运行JavaScript的一些答案。我正在尝试在页面加载时运行JavaScript函数来更改标题。
基本上,以下$(document).ready函数有一个if语句似乎没有正确地从我的iframe读取源代码。
具体来说,这个“if(document.getElementById(”obj“)。src =='/ apex / MyDocumentsMobile')”语句没有做我认为它应该做的事情,断言帧源确实是' /顶点/ MyDcoumentsMobile'
$(document).ready(function() {
if(document.getElementById("obj").src == '/apex/MyDocumentsMobile'){
alert('wow'); //this doesn't work. I know my iframe has this src ,though.
headerChanger('Documents');
}
$(".app-wrapper").delay(500).fadeIn(500); //this works, so my page fades in
});
//This function is called on other parts of the page and changes the header text just fine
function headerChanger(heady){
head = heady;
var element=document.getElementById("headText");
element.innerHTML=heady;
}
<iframe id="obj" src="/apex/MyDocumentsMobile" style="height:8000px;width:100%;position:relative;-webkit-overflow-scrolling: touch; " >
</iframe>
答案 0 :(得分:1)
我建议尝试调试它的一件事是警告实际的页面源,如下所示:
alert(document.getElementById("obj").src)
我在这个JSFIddle http://jsfiddle.net/U95RA/上做了这个,正如您所看到的,即使IFrame URL设置为相对路径,当您请求源时,它也会返回完全限定的URL(http:// {domain} / path而不仅仅是/ path)。
您可以使用正则表达式检查URL以您期望的路径结束:
if(document.getElementById("obj").src.match(new RegExp('/apex/MyDocumentsMobile' + "$"))){
或者,为了更好的安全性(如果有人访问以该路径结尾但位于不同域的URL),我建议您更改支票以包含协议和域名:
if(document.getElementById("obj").src == 'http://whatever.com/apex/MyDocumentsMobile')