[摘自千寻网]给鼠标右键增加“见好就收”的功能

这两天看了园子有位兄弟介绍了千寻,就去逛了下,偶然发现“见好就收”这个功能。
原来是写入注册表,鼠标右键增加菜单“有感就发到千寻”。
使用:
1、

写入注册表的脚本

REGEDIT4

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt]

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\ 有感就发到千寻]
@=http://localhost/fb/FavoriteBlog.htm

 

从注册表删除相应键值的脚本

REGEDIT4

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt]

[-HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\ 有感就发到千寻]

2、在页面上鼠标选中任何文字,右键,“有感就发到千寻”。然后调用一个页面,该页面主要就一个js函数:

<script language="JavaScript">
        
var content = "";
        
var ArticleWindow;
        
function Init()
        
{
            
if (external.menuArguments) 
            
{
                
var parentwin = external.menuArguments;
                
var srcEvent = external.menuArguments.event;
                
var doc = parentwin.document;
                
var eventElement = doc.elementFromPoint ( srcEvent.clientX, srcEvent.clientY );
                
                
// 如果选中的是一片区域,将选中区域的HTML复制到剪贴板
                if (doc.selection) 
                
{
                    
var content = doc.selection.createRange().htmlText;

                    
if(content.length != 0)
                    
{
                        
var cpb = parentwin.clipboardData;          
                        cpb.setData(
"Text", content);
                        
                        ArticleWindow 
= window.open("FavoriteBlogTemp.htm""""");
                    }

                }

            }
 
            
else 
            
{
                history.go(
-1);
            }
  
        }

    
</script>
然后body onload调用:
<body onload="Init()"></body>

可以看到,脚本同时打开了FavoriteBlogTemp.htm这个页面,再看看FavoriteBlogTemp.htm这个页面的内容:
    <script language="Javascript">
        
function PostToArticle(cont)
        
{
            
var obj = document.getElementById("txt_Text");
//            obj.value = cont;
//
            alert(cont);
            
            obj.focus();
            document.execCommand(
'paste');
            window.clipboardData.setData(
'Text',''
            
            
if(oIndexTop().GetCurrentUserID().value != "-1")
                document.forms[
0].submit();       
            
else
                document.getElementById(
"div_Login").style.display = "";
        }

        
function AfterLogin()
        
{   
            document.forms[
0].submit();
        }

    
</script>
</head>
<body onload="PostToArticle();" style="margin:0px;overflow:hidden;">
    
<form id="form1" action="/Blog/WriteArticle.aspx" method="post">
        
<textarea id="txt_Text" name="txt_Text" style="width:1px;height:1px;overflow:hidden;" rows="1"></textarea>
        <input name="IsCollectors" type="hidden" value="1" />
    </form>
    <div id='div_Login' style="height:214px;width:100%;display:none;">
.
从剪贴板读取数据,粘贴到textarea中,然后document.forms[0].submit();
完毕!
虽然整个过程很简单,却是很方便的做法,实现了不错的一个功能。

版权声明:
      本文涉及的所有代码都归千寻网所有,本人仅仅是作为学习之用,如果设计版权问题,立即删除。
      未经千寻网授权,任何人使用该代码并涉及版权纠纷问题与本人无关。
posted @ 2008-07-16 10:44  Kevin Lin  阅读(532)  评论(0编辑  收藏  举报