0

我正在尝试使用我们编写的这个 javascript 获取任何网站的 url 和标题。我在.HTM 中制作了javascript,并从menuExt 中的regedit 中获取它。像 file://C:\Users\lala\script.htm

这是脚本

<script type="text/javascript" defer>

javascript:{var jolExt={url:"http://example.com/script_container.php?id=&note=",submit:function(a){var b=jolExt.base64.encode(jolExt.strip(document.getElementsByTagName("title")[0].innerHTML));var d=jolExt.base64.encode(jolExt.strip(location.href));
window.open(jolExt.url+d+"&note="+b,"","width=380,height=335")},submitToOtherJol:function(){jolExt.submit(true)},submitToJol:function(){jolExt.submit(false)},strip:function(a){return a.replace(/ {2,}/g," ").replace(/^ +/g,"").replace(/ +$/g,"")},base64:{_0:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(a){var b="";var d,c,h,j,i,f,g;var e=0;a=jolExt.base64._1(a);while(e<a.length){d=a.charCodeAt(e++);c=a.charCodeAt(e++);h=a.charCodeAt(e++);j=d>>2;i=((d&3)<<4)|(c>>4);f=((c&15)<<2)|(h>>6);g=h&63;if(isNaN(c)){f=g=64}else if(isNaN(h)){g=64}b=b+this._0.charAt(j)+this._0.charAt(i)+this._0.charAt(f)+this._0.charAt(g)}return b},decode:function(a){var b="";var d,c,h;var j,i,f,g;var e=0;a=a.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(e<a.length){j=this._0.indexOf(a.charAt(e++));i=this._0.indexOf(a.charAt(e++));f=this._0.indexOf(a.charAt(e++));g=this._0.indexOf(a.charAt(e++));d=(j<<2)|(i>>4);c=((i&15)<<4)|(f>>2);h=((f&3)<<6)|g;b=b+String.fromCharCode(d);if(f!=64){b=b+String.fromCharCode(c)}if(g!=64){b=b+String.fromCharCode(h)}}b=jolExt.base64._2(b);return b},_1:function(a){a=a.replace(/\r\n/g,"\n");var b="";for(var d=0;d<a.length;d++){var c=a.charCodeAt(d);if(c<128){b+=String.fromCharCode(c)}else if((c>127)&&(c<2048)){b+=String.fromCharCode((c>>6)|192);b+=String.fromCharCode((c&63)|128)}else{b+=String.fromCharCode((c>>12)|224);
b+=String.fromCharCode(((c>>6)&63)|128);b+=String.fromCharCode((c&63)|128)}}return b},_2:function(a){var b="";var d=0;var c=c1=c2=0;while(d<a.length){c=a.charCodeAt(d);if(c<128){b+=String.fromCharCode(c);d++}else if((c>191)&&(c<224)){c2=a.charCodeAt(d+1);b+=String.fromCharCode(((c&31)<<6)|(c2&63));d+=2}else{c2=a.charCodeAt(d+1);c3=a.charCodeAt(d+2);b+=String.fromCharCode(((c&15)<<12)|((c2&63)<<6)|(c3&63));d+=3}}return b}}};jolExt.submitToJol();}

当我使用我的附加组件时,我只获得了我在 menuExt 的 regedit 上设置的路径。有没有人知道如何解决这个问题。我一直试图将完整的 javascript 放入字符串值中,但它没有帮助。

所以简而言之,我问的是 url,但我在 menuExt 中得到了我的 regedit 编辑器的路径。我需要父网站的网址和父网站的标题。

请帮助我:)

问候,

冰月

4

1 回答 1

0

问题是脚本中的document实例是 MenuExt 脚本的文档。您需要的document是调用脚本的位置。

要得到这个使用external.menuArguments对象。这包含window被调用者的。考虑这个简单的 MenuExt 脚本

<script type="text/javascript">
  // Get callee's 'window' object
  var win = external.menuArguments;

  // Get the callee's 'document' object.
  var doc = win.document;

  // Get the callee's object which invoked this
  // (aka: what you right-clicked on)
  var src = win.event.srcElement;

  // Spit back page title and URL
  alert('Viewing ' + doc.title + ' at ' + win.location + 
        '. You clicked on ' + src + '.');
</script>

要右键单击该项目,请使用external.menuArguments.event.srcElement,如上所示。

于 2011-05-19T17:14:19.077 回答