【问题标题】:Binding to an id in a frame that's showing a third-part website绑定到显示第三方网站的框架中的 id
【发布时间】:2011-04-01 22:21:00
【问题描述】:

a) 我有一个如下所示的 html 页面:

<html>
<head>
<title>Page Title</title>
</head>

<script type="text/javascript">
  document.write('<FRAMESET cols="*, 300" border="0">');
  document.write('<FRAME src="http://www.my-website.com" id="inner" name="inner" />');
  document.write('<FRAME src="http://www.third-party-website" id="chatframe" name="chatframe" />');
  document.write('<NOFRAMES><P>You must have a frames compatible browser to use Activa Live Chat</P></NOFRAMES>');
  document.write('</FRAMESET>');
</script>

</html>

my-website.com 框架是我可以完全访问的网站,而third-party-website.com 是我无法访问的网站(它是一个聊天软件)。

b) 通常聊天会在弹出窗口中打开,但我们这样做是为了让它在页面右侧的框架中打开。

c) 聊天框架有一个“关闭”链接,用于结束聊天会话。它周围有一个 div:

<div class="close" id="close-chat">

d) 当点击“关闭”链接时,我还希望关闭聊天框,即重定向回“my-website.com”。

我尝试使用 jQuery .bind() 向 #close div 添加点击功能,但没有成功。

感谢任何有兴趣的人的帮助!

【问题讨论】:

    标签: javascript jquery frame frameset


    【解决方案1】:

    您没有提供任何 jQuery,但您提到了 #close div。您的 div 是 #close-chat.close,而不是 #close

    没有更多代码,我无法告诉你这是否是真正的问题。

    如果您尝试访问的 div 位于另一个域中,这将无法正常工作,因为它会破坏跨浏览器脚本的安全性。

    【讨论】:

    • 如果添加这个 jQuery:$(document).ready(function() { $("#chatframe").contents().find("#close-chat").bind('click', function(){ alert('Hello!'); }); }); 我看不到“你好!”当我单击#close-chat div 时发出警报。
    • 关闭聊天的div在外网?
    • 是的,密谈 div 在外部网站中
    • 那么你不能按照安全规则绑定它。
    • 好的,谢谢,所以如果我想要一个按钮来关闭包含外部网站的框架,我唯一的选择是将按钮放在我的网站上吗?或者(也许我误读了)但似乎我可以使用 .attr link 选择关闭聊天 div 并添加一个函数来关闭它?
    猜你喜欢
    • 1970-01-01
    • 2014-06-21
    • 2015-06-16
    • 1970-01-01
    • 1970-01-01
    • 2016-10-09
    • 2011-06-05
    • 2014-04-23
    • 1970-01-01
    相关资源
    最近更新 更多