此问题之前已被问过,但答案并没有解决我在一定程度上解决后面临的问题:
我有一个简单的HTML页面有2个框架,在左边一个我打开一些URL,在右边有一个文本输入框我需要onClick来获取在左框架中打开的文档的当前URL。这是我的文本框代码:
<input type="TEXT" name="proz" onClick=value=top.left_frame_name.location.href>
问题是,当我在左框架中打开本地文件时,它可以正常工作 文件:/// C:/Documents%20and%20Settings/Mihailo/My%20Documents/furniture/dnevnaI.htm 当我点击文本框时 但是如果我在左框架中打开一些外部链接http:// ...,则单击右框中的文本框不会在框中产生任何内容,而是在浏览器中显示消息(错误:权限被拒绝)。
该应用程序是一个愿望清单页面,左侧用户从另一个域打开产品页面,右侧是他们的页面,其中包含一个带有多个文本框的表单,我希望用户在框中单击以记住所选产品的网址,最后能够将选择发送给我。
答案 0 :(得分:0)
你不能这样做
您可以使用postMessage
与框架进行通信,但您需要更改与之“交谈”的网页的来源;)
http://viget.com/extend/using-javascript-postmessage-to-talk-to-iframes
我能想到的解决此问题的最佳方法是创建一个书签,将书信息发送到您的页面
它看起来像这样:
javascript:(function(i){i.src='http://yoursite.com/post.jpg?page='+encodeURIComponent(document.location.href)+'&time='+(+new Date);i.onload=function(){ alert('ok, keep going') }})(new Image)
使用图像将允许发送跨域消息。只需让用户将带有此代码的链接拖到他的书签中,然后在每个页面上单击它。
或者只为浏览器制作一个插件