Javascript jquery可以';首次尝试时无法访问iframe
因此,我有一个页面,可以从名为“enews”的文件夹中列出任何enewsletter(纯html) 当用户单击列表时,html页面将显示在iframe中(仍在同一页面中)Javascript jquery可以';首次尝试时无法访问iframe,javascript,jquery,html,iframe,Javascript,Jquery,Html,Iframe,因此,我有一个页面,可以从名为“enews”的文件夹中列出任何enewsletter(纯html) 当用户单击列表时,html页面将显示在iframe中(仍在同一页面中) enews html页面不是由我创建的,因此我无法完全控制页面的显示方式。所有的文件仍然在同一个域中 因此,我可以毫无问题地在iframe中显示html页面。我老板唯一想做的就是在新的选项卡/窗口上打开html页面中的每个超链接 当然,我可以只在enewsletter html页面中添加“target=_blank”,
enews html页面不是由我创建的,因此我无法完全控制页面的显示方式。所有的文件仍然在同一个域中
因此,我可以毫无问题地在iframe中显示html页面。我老板唯一想做的就是在新的选项卡/窗口上打开html页面中的每个超链接
当然,我可以只在enewsletter html页面中添加“target=_blank”,但这是不可行的,因为我们有100多个这样的页面,我不能手动操作,加上负责人没有编程技能,所以他实际上只是在更改html的内容
现在,有什么办法可以做到这一点吗
我曾尝试使用jquery访问iframe中的内容(要添加),但效果不太好
<script>
$( document ).ready(function() {
$('a.iframesrc').click(function() {
console.log("clicked enewslink");
var link = $(this).attr("href");
console.log(link);
$("#viewcontent").attr("src",link);
$("#viewcontent").ready(function () {
var content = $( "#viewcontent" ).contents().find("body").html();
console.log(content);
});
});
});
</script>
$(文档).ready(函数(){
$('a.iframesrc')。单击(函数(){
log(“单击了enewslink”);
var link=$(this.attr(“href”);
控制台日志(链接);
$(“查看内容”).attr(“src”,链接);
$(“#视图内容”).ready(函数(){
var content=$(“#viewcontent”).contents().find(“body”).html();
控制台日志(内容);
});
});
});
因此,当加载页面时,我单击“today”,控制台会检索链接href,但iframe的“内容”为空,加上iframe会显示正确的内容。
当我单击“昨天”时,控制台可以检索链接href,但这次iframe的“内容”被打印出来(在控制台中),iframe也显示正确的内容
为什么浏览器不能在第一次单击时捕获链接
谢谢,非常感谢您的帮助
编辑:
第一次单击时:
第二次单击时:
blablabla-enews的内容“>我对您的原始代码做了以下更改:
- 将
的iframe
更改为id
viewcontent
- 将
更改为$(“#viewcontent”).ready(…)
$(“#viewcontent”).load(…)
- 移动
(这样在第一次单击链接时它就已经绑定了)$(“#viewcontent”)。在
。单击(…)$('a.iframesrc')外部加载(…)
<iframe id="viewcontent" name="myiframe"></iframe>
<script>
$( document ).ready(function() {
$('a.iframesrc').click(function() {
console.log("clicked enewslink");
var link = $(this).attr("href");
console.log(link);
$("#viewcontent").attr("src",link);
});
$("#viewcontent").load(function () {
var content = $( "#viewcontent" ).contents().find("body").html();
console.log(content);
});
});
</script>
脚本:
<iframe id="viewcontent" name="myiframe"></iframe>
<script>
$( document ).ready(function() {
$('a.iframesrc').click(function() {
console.log("clicked enewslink");
var link = $(this).attr("href");
console.log(link);
$("#viewcontent").attr("src",link);
});
$("#viewcontent").load(function () {
var content = $( "#viewcontent" ).contents().find("body").html();
console.log(content);
});
});
</script>
$(文档).ready(函数(){
$('a.iframesrc')。单击(函数(){
log(“单击了enewslink”);
var link=$(this.attr(“href”);
控制台日志(链接);
$(“查看内容”).attr(“src”,链接);
});
$(“#视图内容”).load(函数(){
var content=$(“#viewcontent”).contents().find(“body”).html();
控制台日志(内容);
});
});
只有当前文档有一个ready
处理程序,您的iFrame元素没有一个ready处理程序。@adeneo您好,我删除了那个部分,没有任何区别。谢谢。对不起,我已经编辑了我的代码。实际上iFrame和javascript的ID是正确的,我只是在这篇文章中键入了错误。谢谢