本站不兼容 8 以前的版本的 Interner Explorer 浏览器(或基于这些版本的 IE 的其他浏览器),并且页面样式不完全兼容 IE 8,我们建议你升级至 IE 9 或改用其他非 IE 浏览器

Mozest™

  • 正在加载用户菜单…

开放、分享、互助

转播到腾讯微博
返回列表 回复 发帖

[已解决] 关于获取在框架页中选中文本的问题(Fx)

======================================================
发现加上 try 就可以了
  1. function(){
  2.         var _frames = document.getElementsByTagName('iframe');
  3.         for (var i = 0; i < _frames.length; i++)
  4.                 try{
  5.                         if (_frames[i].contentDocument.getSelection)
  6.                                 return _frames[i].contentDocument.getSelection();
  7.                 }
  8.                 catch(err){}
  9. }
复制代码
======================================================
只讨论 Fx 的环境,因为 IE 很容易……
  1. function(){return document.getElementById('frmBar').contentDocument.getSelection();}
复制代码
这种方法可以,但是需要框架页标签包含 id。
  1. function(){
  2.         var _frames = document.getElementsByTagName('iframe');
  3.         for (var i = 0; i < _frames.length; i++)
  4.                 if (_frames[i].contentDocument.getSelection)
  5.                         return _frames[i].contentDocument.getSelection();
  6. }
复制代码
这种方法属于抽筋那种,偶尔会成功一次。

[ 本帖最后由 水鑫日 于 2008-12-5 13:46 编辑 ]
*不论美丑善恶,我会代你言说真实的生命。  —— 死者代言人
一般iframe没有ID的话也该有name吧,比如name="frmBar",可以用top.frames["frmBar"].contentDocument.getSelection这样的引用试试。另外我疑惑一定要用contentDocument吗,直接用document行不行?
「往日如同阴魂,从它存在到你消失都会不断纠缠着你。」 ~晴空号的杰拉尔德
我的意思是想要通用的方法,而不需要知道 id 、name 之类的属性。
在火狐中,要通过 javascript 操作子框架中的内容好像只能用 contentDocument 和 contentWindow 的方法。contentWindow 倒是还包含一个 document 对象。

[ 本帖最后由 水鑫日 于 2008-12-2 15:31 编辑 ]
*不论美丑善恶,我会代你言说真实的生命。  —— 死者代言人
原帖由 水鑫日 于 2008-12-2 15:29 发表
我的意思是想要通用的方法,而不需要知道 id 、name 之类的属性。 ...
这样的话也只能用top.frames[NUM].contentDocument.getSelection 这样的形式了。。
「往日如同阴魂,从它存在到你消失都会不断纠缠着你。」 ~晴空号的杰拉尔德
我这里也不知道是怎么回事 frames 集合只有长度正常,其它的就用不了了,属性就跟 window.self 对象一样,完全不像是对象集合。
有没有其它的办法啊?g了也没用。
*不论美丑善恶,我会代你言说真实的生命。  —— 死者代言人
不介意的话,把源文件发上来,大家研究下
「往日如同阴魂,从它存在到你消失都会不断纠缠着你。」 ~晴空号的杰拉尔德
就是用书签加载一个划词的脚本,很简单。但是框架页的问题解决不了,权限不够不好使。
只是不想用那几个扩展的脚本,这种不常用的没必要每次都加载。
*不论美丑善恶,我会代你言说真实的生命。  —— 死者代言人
试试这个现成的:javascript:void((function()%20{var%20element=document.createElement('script');%20element.setAttribute('src',%20'http://dict.cn/hc/init.php');%20document.body.appendChild(element);})())
「往日如同阴魂,从它存在到你消失都会不断纠缠着你。」 ~晴空号的杰拉尔德
谢谢了,这个我做好了,就是框架页取词的问题没解决。
Dict.cn 的这个也不能在火狐的框架页中取词
*不论美丑善恶,我会代你言说真实的生命。  —— 死者代言人