我遇到的问题是阻止链接启动新页面并在iframe中加载其href值。客户端站点正在使用healcode服务,该服务提供小部件来安排健身类等。检查此page当小部件加载后单击注册按钮时,它将打开一个新页面。客户想要的是在同一页面或弹出窗口中打开该链接。我已经尝试了我能想到的一切。我使用过jQuery,fancybox等。
这是我使用的代码 screenshot
我认为问题在于,我的内联脚本在窗口小部件脚本完成之前加载呈现调度html。
我知道这是可能的,因为this site使用相同的小部件,并且他们的注册会在同一页面的重叠框架中打开链接。
请对此有所了解。
更新:
<html>
<head>
<title>Test</title>
</head>
<body>
<iframe id="openViewHere" width="500px" height="500px" src="" ></iframe>
<script type="text/javascript">
healcode_widget_id = "7696499e81";
healcode_widget_name = "schedules";
healcode_widget_type = "mb";
document.write(unescape("%3Cscript src='https://www.healcode.com/javascripts/hc_widget.js' type='text/javascript'%3E%3C/script%3E"));
// Healcode Schedule Widget for Iyengar Yoga Association of Greater New York : Brooklyn Daily Class Schedule
</script>
<noscript>Please enable Javascript in order to get <a href="https://www.healcode.com" target="_blank">HealCode</a> functionality</noscript>
<script src="https://code.jquery.com/jquery-1.11.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(".signup_now").click(function(){
var url = $(this).attr("href");
$("#openViewHere").attr("href",url);
return false;
});
</script>
</body>
</html>
&#13;
答案 0 :(得分:1)
只需使用此代码:
$( document ).ready(function(){
$("body").on('click',".signup_now",function(e){
$(this).attr("target","_self")
})
})
请注意,windows.ready()
可能会触发,而widget脚本仍在动态添加元素,这就是侦听器无法工作的原因,您必须通过已经加载的父级(例如“body”)访问该元素。