只是为了记忆——从CSDN右键菜单学习到的。

whwqs 2008-06-04 05:55:05
把从保存到网摘学习的东西做整理:
(1)注册表:
a、注册:r.reg内容:
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\csdn网摘]
@="http://wz.csdn.net/tools/rightClick.aspx"

b、撤销:ur.reg内容:
REGEDIT4

[-HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\csdn网摘]

(2)js代码:
http://wz.csdn.net/tools/rightClick.aspx 内容:

<html>
<script LANGUAGE="JavaScript">
if (external.menuArguments) {
//external—— Microsoft® Internet Explorer 浏览器组件宿主应用程序提供的附加对象模型
//menuArguments——返回快捷菜单执行所在的窗口对象
var parentwin = external.menuArguments;
if (parentwin.document.selection) {
// 摘要 但并未使用
var sel = parentwin.document.selection.createRange().text;
}

if (!sel) {
var sel = '';
}
// 网址
var url = parentwin.location.href;
// 标题
var title = parentwin.document.title;

// 好像应该是点击帖子中超链接“放进我的网摘”的处理,但两个问题不清:
// (1)parentwin怎么来的;
// (2)parentwin.event.srcElement.innerText怎么会变化呢?
// 因此断定这一段是无用的。
// 超链接“放进我的网摘”的onclick="javascript:try{addToWZ()}catch(ex){};return false;"
// 应该是在addToWZ中处理
if (parentwin.event.srcElement.tagName == "A") {
url = parentwin.event.srcElement.getAttribute("HREF");
title = parentwin.event.srcElement.innerText;
}

// 摘要是依靠剪贴板传到后台的吗?要试一试
window.clipboardData.clearData();
parentwin.document.execCommand("Copy");

// 用void包装,不用的话要试一试效果
void(window.open('http://wz.csdn.net/storeIt.aspx?d=1&t='+escape(title)+'&u='+escape(url),'_blank','scrollbars=no,width=595,height=300,left=75,top=20,status=no,resizable=yes'))
} else {
history.go(-1);
}
</script>
</html>




...全文
128 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
whwqs 2008-06-05
  • 打赏
  • 举报
回复
通过试验知道,网摘是通过剪贴板传递的:
在http://wz.csdn.net/tools/rightClick.aspx 通过 parentwin.document.execCommand("Copy"); 拷贝到剪贴板。在http://wz.csdn.net/storeIt.aspx 通过 document.getElementById('clipping').value = window.clipboardData.getData("TEXT") 把剪贴板内容放到多行文本框clipping

whwqs 2008-06-05
  • 打赏
  • 举报
回复
//////////////////////////////////////////////////////////////////

scriptaculous.js

var Scriptaculous = {
Version: '1.6.4',
require: function(libraryName) {
// inserting via DOM fails in Safari 2.0, so brute force approach
document.write('<script type="text/javascript" src="'+libraryName+'"></script>');
},
load: function() {
if((typeof Prototype=='undefined') ||
(typeof Element == 'undefined') ||
(typeof Element.Methods=='undefined') ||
parseFloat(Prototype.Version.split(".")[0] + "." +
Prototype.Version.split(".")[1]) < 1.5)
throw("script.aculo.us requires the Prototype JavaScript framework >= 1.5.0");

$A(document.getElementsByTagName("script")).findAll( function(s) {
return (s.src && s.src.match(/scriptaculous\.js(\?.*)?$/))
}).each( function(s) {
var path = s.src.replace(/scriptaculous\.js(\?.*)?$/,'');
var includes = s.src.match(/\?.*load=([a-z,]*)/);
(includes ? includes[1] : 'builder,effects,dragdrop,controls,slider').split(',').each(
function(include) { Scriptaculous.require(path+include+'.js') });
});
}
}

Scriptaculous.load();

whwqs 2008-06-05
  • 打赏
  • 举报
回复
post.js:

String.prototype.trim = function(){ return this.replace(/^\s+|\s+$/g,'') }
String.prototype.escRegExp = function(){ return this.replace(/[\\$*+?()=!|,{}\[\]\.^]/g,'\\$&') }
String.prototype.unescHtml = function(){ var i,t=this; for(i in e) t=t.replace(new RegExp(i,'g'),e[i]); return t }
function Suggestions() { this.length=0; this.picked=0 }
var suggestions = new Suggestions()
var tagSearch=' ', lastEdit=''
var h={}, sections=[{},{},{},{},{}], selected={}, currentTag={}, e={'<':'<','>':'>','&':'&','"':'"'}

function init() { var elements = ['suggest','newTags'], t,i
for(i in elements) h[elements[i]] = document.getElementById(elements[i])
for(t in alltags) {
tagSearch += t + ' '

var tagid = alltags[t]['x']
var id = alltags[t]['y']
var title = t+'['+id+']'

//var sel = false
//for (j in tagselected) {
// if (tagid==tagselected[j]) { sel=true; break;}
//}
//if (sel){ h.Tags.options.add(new Option(title,tagid),0);h.Tags.options[0].selected=true}
//else{ h.Tags.options.add(new Option(title,tagid));}
}

document.onkeydown = document.onkeypress = document.onkeyup = handler
updateHilight()

// read clipboardData
if (dType == '1')
{
if (window.clipboardData.getData("TEXT")!=null)
{
if (document.getElementById('clipping').value == '')
{
document.getElementById('clipping').value = window.clipboardData.getData("TEXT");
}
window.clipboardData.clearData();
}
}
}

function makeTag(parent, tag, js) {
parent.appendChild(document.createTextNode(' '))
var obj = document.createElement('a')
obj.className = 'tag'
obj.setAttribute('href','javascript:'+js+'("'+tag.replace(/"/g,'\\"')+'")')
obj.appendChild(document.createTextNode(tag))
if(alltags[tag] < 2) obj.style.color = '#66f'
if(alltags[tag] == 2) obj.style.color = '#44f'
parent.appendChild(obj)
return obj
}

function select(t) { var i; t=t.toLowerCase()
selected[t] = true; for(i in sections) if(sections[i][t]) sections[i][t].className = 'tag selected'
}
function deselect(t) { var i; t=t.toLowerCase()
delete selected[t]; for(i in sections) if(sections[i][t]) sections[i][t].className = 'tag'
}

function complete(tag) { var tagArray=h.newTags.value.split(' ')
if(typeof tag == 'undefined') tag = suggestions[suggestions.picked].innerHTML.unescHtml() // tab complete rather than click complete
tagArray[currentTag.index] = tag
var text = tagArray.join(' ')
h.newTags.value = (text.substr(-1,1) == ' ' ? text : text + ' ' )
hideSuggestions()
updateHilight()
focusTo(h.newTags)
}


// focus the caret to end of a form input (+ optionally select some text)
var range=0 //ie
function focusTo(obj, selectFrom) {
if (typeof selectFrom == 'undefined') selectFrom = obj.value.length
if(obj.createTextRange){ //ie + opera
if (range == 0) range = obj.createTextRange()
range.moveEnd("character",obj.value.length)
range.moveStart("character",selectFrom)
obj.select()
range.select()
setTimeout('range.select()', 10) // must use a timer to get around bullshit ie bug
} else if (obj.setSelectionRange){ //ff
obj.select()
obj.setSelectionRange(selectFrom,obj.value.length)
} else { //safari :(
obj.blur()
}}

function updateHilight() {
var tagArray=h.newTags.value.toLowerCase().split(' '), tagHash={}

if (tagArray[0].trim() == '') tagArray.splice(0,1);
for (t in tagArray) {
if(tagArray[t] != '') {
select(tagArray[t])
tagHash[tagArray[t]] = true
}}
for (t in selected) {if (!tagHash[t]) deselect(t)}
return [tagArray, tagHash]
}

function hideSuggestions() {h.suggest.parentNode.style.visibility='hidden'}
function showSuggestions() { suggest(0); h.suggest.parentNode.style.visibility='visible'}

function updateSuggestions() {
if(!getCurrentTag() || !currentTag.text) { hideSuggestions(); return false }

while (h.suggest.hasChildNodes()) h.suggest.removeChild(h.suggest.firstChild)
delete suggestions; suggestions = new Suggestions();
var tagArray = h.newTags.value.toLowerCase().split(' '), txt=currentTag.text.escRegExp(), tagHash={}, t
for(t in tagArray) tagHash[tagArray[t]] = true

var search = tagSearch.match(new RegExp(("\\s("+txt+"[^\\s]+)\\s"), "gi"))

if(search){
for (i=0; i<search.length && suggestions.length<10; i++) {
tl = search[i].trim()
if(tagHash[tl]) continue // do not suggest already typed tag
suggestions[suggestions.length] = makeTag(h.suggest, tl, 'complete')
suggestions.length++
}}
if (suggestions.length > 0) showSuggestions()
else hideSuggestions()
}

function suggest(index) {
if(suggestions.length == 1) index = 0
if(suggestions[suggestions.picked]) suggestions[suggestions.picked].className = 'tag'
suggestions[suggestions.picked = index].className = 'tag selected'
}

function getCurrentTag() {
if(h.newTags.value == lastEdit) return true // no edit
if(h.newTags == '') return false

currentTag = {}
var tagArray=h.newTags.value.toLowerCase().split(' '), oldArray=lastEdit.toLowerCase().split(' '), currentTags = [], matched=false, t,o
for (t in tagArray) {
for (o in oldArray) {
if(typeof oldArray[o] == 'undefined') { oldArray.splice(o,1); break }
if(tagArray[t] == oldArray[o]) { matched = true; oldArray.splice(o,1); break; }
}
if(!matched) currentTags[currentTags.length] = t
matched=false
}
// more than one word changed... abort
if(currentTags.length > 1) { hideSuggestions(); return false }
currentTag = { text:tagArray[currentTags[0]], index:currentTags[0] }
return true
}

function handler(event) { var e=(event||window.event) //w3||ie
if (e.type == 'keydown') {
if(suggestions.length > 0) {
switch(e.keyCode) {
case 38: suggest((suggestions.picked + 1) % suggestions.length); break
case 40: suggest(suggestions.picked == 0 ? suggestions.length - 1 : suggestions.picked - 1); break
}}} else if (e.type == 'keypress') {
switch(e.keyCode){
case 38: case 40:
if(e.preventDefault) e.preventDefault() //ff
break;
case 9: // tab
if (e.preventDefault && h.suggest.parentNode.style.visibility == 'visible') { //ff
complete()
e.preventDefault()
}
break;
default: lastEdit = h.newTags.value
}} else if (e.type == 'keyup') {
updateHilight()
switch(e.keyCode) {
//case 8: //backspace
//case 46: //delete
case 35: //end
case 36: //home
case 39: // right
case 37: // left
case 32: // space
hideSuggestions(); break
case 38: case 40: break;
case 9:
if(!e.preventDefault && h.suggest.parentNode.style.visibility == 'visible') complete() //ie
break;
default: updateSuggestions()
}}}

日总是我哥 2008-06-04
  • 打赏
  • 举报
回复
mark
zDrawHelp V1.0 作者:zyl910 邮箱:zyl910@sina.com Blog:http://blog.csdn.net/zyl910 简介 ~~~~   zDrawHelp是一个画像素图的辅助工具。   它可以使一副图片在所有窗口的前面并半透明,而且最奇妙的是——鼠标操作能穿透该图片,直接操作下面的绘图软件。   运行环境:.Net Framework 2.0。Windows 2000/2003/xp/vista/win7。 操作指南 ~~~~~~~~   使用方法—— 1.启动绘图软件(如Photoshop)。进行编辑,放大到合适尺寸,准备画像素图。 2.启动zDrawHelp。 3.在zDrawHelp上点击鼠标右键,弹出快捷菜单。点击“打开图片”加载图片。 4.默认的不透明度是100%。您可以在右键菜单中的“不透明度”子菜单中调整不透明度(一般60%比较合适)。 5.图片打开后,默认是自适应缩放模式的。您可以在右键菜单中的“缩放”子菜单中调整缩放倍数。 6.拖曳鼠标左键移动窗口,使其位于绘图软件上方。再拖曳鼠标右键移动窗口内的图片,使其与绘图软件中的欲编辑区域吻合。 7.摆好位置后,点击右键菜单中的“永在顶层”。这样zDrawHelp就永在顶层,并且鼠标操作能穿透zDrawHelp,直接操作下面的绘图软件。 8.现在就可以参考图片进行像素图编辑了。若编辑时需要隐藏zDrawHelp的半透明窗口,可以使用快捷键Ctrl+F11隐藏,再按Ctrl+F11可以恢复显示。 问:如何退出zDrawHelp的穿透模式? 答:在任务栏右下角的任务托盘区找到zDrawHelp的托盘图标,点击鼠标右键弹出快捷菜单,再点击“永在顶层”,退出永在顶层模式与穿透模式。   解释—— 穿透模式 = 永在顶层 + 半透明(不透明度小于100%) 若您将不透明度设为100%,也可退出穿透模式。 这是顺序无关的。您也可以先设为“永在顶层”再调整“不透明度”进入穿透模式。 操作参考 ~~~~~~~~   操作说明—— 拖曳鼠标左键:移动窗口。 拖曳鼠标右键:移动窗口内的图片。 右键菜单:许多高级功能。如:打开图片、缩放、高级、调整窗口大小、永在顶层、不透明度、显示、隐藏、退出。   全局热键—— Ctrl+F11:显示/隐藏切换。 更新历史 ~~~~~~~~ [2011-08-13] V1.0 V1.0发布

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧