爱词霸上的划词翻译,我想在任何网页上都能使用,但是写的时候碰到了一点麻烦,请懂的人帮帮我吧。写了一个链接,想右键把脚本添加到收藏夹里,然后在想翻译的网页上点击收藏的网页,执行脚本,就可以调用了。
代码如下:<p><a href="javascript:(function(){var doc = document.all[0]; 
document.write(doc.innerHTML); 
var iciba_param =new Array(); 
iciba_param['skin'] = 1; 
iciba_param['searchInputDisplay'] = 'block'; 
iciba_param['searchInputWidth'] =210; 
iciba_param['isCanDraw'] = '1'; 
iciba_param['selfDeter'] ='0'; 
iciba_param['width'] = '325'; 
iciba_param['height'] = '200'; 
iciba_param['isPopIcon'] ='1'; 
iciba_param['context']=[['Dict',''],['Fy',''],['Love',''],['Tf',''],['Dj','none'],['Enen','none']]; 
var oHead = document.getElementsByTagName('head').item(0); var oScript= document.createElement('script'); oScript.type = 'text/javascript'; oScript.src='http://dict-co.iciba.com/ui.php'; oScript.charset='UTF-8';oHead.appendChild(oScript);
})();">爱词霸翻译</a></p>
在小的网页上可以用,如a.html,点击链接后可以用划词翻译了:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>“穿越”大戏《宫》上演完美大结局?__爱词霸英语网</title> 
 <!--网页划词--> 
</head>
<body>
Pretty faces, imperial conspiracies, a love triangle – The TV drama Palace, which aired on Hunan TV, was just another time-traveling story. But things got interesting when details of the ending were leaked on the Internet. 
<p><a href="javascript:(function(){
var doc = document.all[0]; 
document.write(doc.innerHTML); 
var iciba_param =new Array(); 
iciba_param['skin'] = 1; 
iciba_param['searchInputDisplay'] = 'block'; 
iciba_param['searchInputWidth'] =210; 
iciba_param['isCanDraw'] = '1'; 
iciba_param['selfDeter'] ='0'; 
iciba_param['width'] = '325'; 
iciba_param['height'] = '200'; 
iciba_param['isPopIcon'] ='1'; 
iciba_param['context']=[['Dict',''],['Fy',''],['Love',''],['Tf',''],['Dj','none'],['Enen','none']]; 
var oHead = document.getElementsByTagName('head').item(0); var oScript= document.createElement('script'); oScript.type = 'text/javascript'; oScript.src='http://dict-co.iciba.com/ui.php'; oScript.charset='UTF-8';oHead.appendChild(oScript);
})();">爱词霸翻译</a></p></body> 
</html> 但在别的网站上不知道为什么不行,而且我不想用
var doc = document.all[0]; 
document.write(doc.innerHTML); 
因为要覆盖原网页,太麻烦,试了几个其它方法,还是不知道该怎么动态加载那个脚本。
谁知道该怎么办??

解决方案 »

  1.   

    网页上加上
    <script type='text/javascript' src='http://dict-co.iciba.com/ui.php'></script>就可以了
      

  2.   

    有些页面是有框架的,frameset,iframe,只是没有边框,你看不出来而已。
    你这个只对当前顶级文档加入,对于框架里面的文档就无效了。
    要有效果的话,需要逐级遍历框架,逐个加入。
      

  3.   

    恩,还有这个问题。
    那有没有其它的解决方法,不用document.write
      

  4.   

    本来想说可以不用document.write的,也写了几行,后来写到那个'http://dict-co.iciba.com/ui.php'时,想起应该看看它是如何做的,这样才能看如何配合.结果一看'http://dict-co.iciba.com/ui.php',它里面就是直接写的 document.write.这样的话,你不那样先把原来innerHTML写一遍,它就直接覆盖了.'http://dict-co.iciba.com/ui.php'你改不了,只能按它的方式来.就那样吧.
      

  5.   

    除非,把document.write重写了,把它由直接输出变成写到一个DIV里,然后后面的函数也都需要修改.这个量太多,我只能给你指出这个路,不可能再做太多了.重写document.write的例子,如下:<script type="text/javascript">
    var theforever_csdn=document.write;//保存原来的方法,需要的时候调用它
    document.write=function(d){alert(d)}; //重写,关键是函数里面要按一定形式构造好
    document.write("theforever碧海情天"); //重写之后,引入那个外部JS时,它在执行输出时就被转向了.
    //这里只是转向变成alert出来.你需要放到一个变量最后再转成能够显示的对象,插入原来的DOM中.
    //后面的,就是你把前面转向的数据,取出来使用.
    </script>如果对你来说这样很难,那就放弃用原来的方式,因为要去改整个那个JS的话,从量上讲对谁也都是麻烦事.