使用Javascript来控制iFrame的导航,而不应用src属性
Using Javascript to control navigation of iFrame not applying src property
所以我正在制作一个页面,它将允许我呈现外部页面,这样我就可以开始定期操作数据和刷新内容(理想情况下,不是这样)。
因此,我的问题是,我有一个小javascript来调用页面加载到我的iframe,但当我试图将我的url应用到我的iframe的src属性时,它似乎不会粘住,也没有外部页面加载。我一直在使用我自己的网站进行测试,所以不应该有来自url位置的限制来阻止它加载。我不确定页面是否需要重新加载(可能是?)以便iframe更改其src?如果是这样的话,我的想法将完全不可行,所以我希望这不是问题所在。这是我迄今为止的代码:
<head>
<style>body{text-align:center;}#targetField{width:80%;margin:3px;}</style>
<script>
var frames = new Array();
var url;
function direct(url){
frames = document.getElementsByTagName('iframe');//Obtain all iframe elements
for(i=0;i<frames.length;i++){//For each frame
//IF the frames source element is blank or null
if(frames[i].getAttribute('src') === null || frames[i].getAttribute('src') === 'null' || frames[i].getAttribute('src') === ''){
frames[i].setAttribute('src', url);
}
else if(frames[i].getAttribute('src') === url){
//IF the souce element already has a target and is SAME as url
if(navigator.appName == 'Microsoft Internet Explorer'){
//If IE then use reload()
frames[i].contentWindow.location.reload(true);
}
else{
//Otherwise set source to reload
frames[i].src = frames[i].src
}
}
else{}
}
}
</script>
</head>
<body>
<form>
<input id="targetField"></input>
<button onclick="direct(document.getElementById('targetField').value);" value="submit">GO!!!</button>
</form>
<iframe id="iF01"></iframe></body></html>
如果可能的话,我宁愿使用纯javascript而不使用任何jQuery,我只是不确定为什么我的调试控制台没有显示任何问题,但什么都不做。经过铬、FF和IE8测试。JSFiddle在这里http://jsfiddle.net/77tx44od/2/
我现在也尝试过,但没有成功,创建了一个新的iFrame来通过其src属性加载内容。
<script>
var frames = new Array();
var url;
var x = 0;
function direct(url){
frames = document.getElementsByTagName('iframe');//Obtain all iframe elements
for(i=0;i<frames.length;i++){//For each frame
frames[i].parentnode.removeChild(frames[i]);
}
var newFrame = document.createElement('iframe');
newFrame.setAttribute('src', url);
newFrame.setAttribute('id', 'iF'+x);
document.body.appendChild(newFrame);
x++;
}
</script>
加载来自不同来源的页面后,您无法查询iframe中的内容,也无法由于跨来源安全性而更改其src。最好的办法是给iframe命名,然后使用window.open(URL,iframeName)。
这是一个想法,用另一个src替换一个新的iframe。
它可能会被阻止在iframe中加载页面——它很可能会试图破坏
这是一个替代版本:
小提琴
<form id="form1">
<input id="targetField"></input>
<button value="submit">GO!!!</button>
</form>
<div id="iframeDiv">
<iframe id="iF01"></iframe></div>
window.onload=function() {
document.getElementById("form1").onsubmit=function() {
document.getElementById("iframeDiv").innerHTML='<iframe src="'+this.targetField.value+'"></iframe>';
return false; // cancel form submission
}
}
相关文章:
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- Emberjs应用程序加载在除Index之外的所有路由上
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 跟踪在页面加载时应用内联样式的JavaScript
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- 如果文本字段为空,则使用JavaScript应用CSS样式
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- 为什么在单独的函数中应用时转换会闪烁/断断续续(D3)
- angular 1.5应用程序中的导航栏
- 在Twitter上用ie9中的空白src访问iframe的contentWindow
- 角度应用程序中 src 项的 404 错误
- Angularjs在node-webkit应用程序中将image src更改为“unsafe:”
- 如何使用来自 IP 网络摄像头应用程序的 jpeg 流作为 html5 视频标签中的 src
- 如何使用javascript更改应用程序/ pdf的src
- 检测和更改Chrome应用程序Webview中src的URL
- 使用Javascript来控制iFrame的导航,而不应用src属性
- 100多张图片的图片src-iOS应用程序大小问题
- 动态应用图像 src 在 FF 和 IE 中不起作用
- 从MVC应用中的其他站点获取iframe的src内容