|
阅读:3159回复:7
求助:anto copy组件在FF3上不能使用了
有没有熟悉这个组件的人给推荐一个其他的
|
|
|
1楼#
发布于:2008-06-21 15:36
我这里和同学那里都正常使用
|
|
|
2楼#
发布于:2008-06-21 15:36
改下最大版本号,老的0.64都可以在FF3下正常使用
|
|
|
|
3楼#
发布于:2008-06-21 15:36
|
|
|
4楼#
发布于:2008-06-21 15:36
刚才修改了版本号以后,浏览器提示错误:不能安装未提供安全更新
|
|
|
5楼#
发布于:2008-06-21 15:36
/* :::::::: AutoCopy ::::::::::::::: */
var gautocopy_lastSelection = null;
var gautocopy_clipboardcontents = new Array();
var gautocopy_doPaste = false;
window.addEventListener("load",function() {initAutoCopyStatus();} ,false);
window.addEventListener("mouseup", autocopyOnMouseUp ,false);
window.addEventListener("keyup", autocopy_onKeyUpCheck ,false);
//window.onmouseup = autocopyOnMouseUp;
//window.onkeyup = autocopy_onKeyUpCheck;
window.addEventListener("mousedown", Autocopy_Pasteonmiddleclick_mousedown ,false);
window.addEventListener("mouseup", Autocopy_Pasteonmiddleclick_mouseup ,false);
// prefs
var autocopyPrefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("autocopy.");
if (!autocopyPrefs.prefHasUserValue("StatusBarState"))
autocopyPrefs.setIntPref("StatusBarState", 1)
function AutocopyClipboardContents(adataType, adata, adataLength)
{
this.dataType = adataType;
this.data = adata;
this.dataLength = adataLength;
}
/////////////////
//
//window.addEventListener("load",function() {AutoCopyCopyOnLoad();} ,true);
//
//function AutoCopyCopyOnLoad()
//{
//////////////////
//goDoCommand('cmd_selectAll');
//AutocopySelectAll();
//Autocopy_DeselectAfterCopy_CollapseSelection()
//}
/////////////////
function initPreferences()
{
if (!autocopyPrefs.prefHasUserValue("optPasteOnMiddleClick"))
autocopyPrefs.setBoolPref("optPasteOnMiddleClick", true);
if (!autocopyPrefs.prefHasUserValue("optCopyWithoutFormating"))
autocopyPrefs.setBoolPref("optCopyWithoutFormating", false);
if (!autocopyPrefs.prefHasUserValue("optEnableInTextBoxes"))
autocopyPrefs.setBoolPref("optEnableInTextBoxes", false);
}
function autocopy_onKeyUpCheck(e)
{
if(e.keyCode == e.DOM_VK_A && e.ctrlKey)
{
autocopyOnMouseUp(e);
}
}
function autocopyOnMouseUp(e)
{
if ((!e.ctrlKey) || (e.keyCode))
{
var targetclassname = e.target.toString();
if(autocopyPrefs.getIntPref("StatusBarState") == 1)
{
// if (!targetclassname.match(/object XUL/i))
// {
if(!targetclassname.match(/SelectElement|OptionElement/i))
{
if(!Autocopy_isTargetEditable(e.target))
{
if((autocopy_getSelection().length > 0) && (gautocopy_lastSelection != autocopy_getSelection()))
{
//were going to copy
gautocopy_lastSelection = autocopy_getSelection();
autocopy_saveclipboard();
if(autocopyPrefs.getBoolPref("optCopyWithoutFormating"))
{
copyplaintext();
}
else
{
goDoCommand('cmd_copy');
}
}
}
else if (autocopyPrefs.getBoolPref("optEnableInTextBoxes"))
{
if((autocopy_getSelection().length > 0) && (gautocopy_lastSelection != autocopy_getSelection()))
{
//were going to copy
gautocopy_lastSelection = autocopy_getSelection();
autocopy_saveclipboard();
if(autocopyPrefs.getBoolPref("optCopyWithoutFormating"))
{
//copyplaintext dosn't work in textboxes
//copyplaintext();
goDoCommand('cmd_copy');
}
else
{
goDoCommand('cmd_copy');
}
}
}
}
// }
}
}
}
function AutocopySelectAll()
{
var targetclassname = "";
if(document.commandDispatcher.focusedElement)
{
targetclassname = document.commandDispatcher.focusedElement.toString();
}
if(autocopyPrefs.getIntPref("StatusBarState") == 1)
{
// if (!targetclassname.match(/object XUL/i))
// {
if(!targetclassname.match(/SelectElement|OptionElement/i))
{
if(!Autocopy_isTargetEditableDispatcher(document.commandDispatcher))
{
if(autocopy_getSelection().length > 0)
{
//were going to copy
gautocopy_lastSelection = autocopy_getSelection();
autocopy_saveclipboard();
if(autocopyPrefs.getBoolPref("optCopyWithoutFormating"))
{
copyplaintext();
}
else
{
goDoCommand('cmd_copy');
}
}
}
else if (autocopyPrefs.getBoolPref("optEnableInTextBoxes"))
{
if((autocopy_getSelection().length > 0) && (gautocopy_lastSelection != autocopy_getSelection()))
{
gautocopy_lastSelection = autocopy_getSelection();
autocopy_saveclipboard();
if(autocopyPrefs.getBoolPref("optCopyWithoutFormating"))
{
//copyplaintext dosn't work in textboxes
//copyplaintext();
goDoCommand('cmd_copy');
}
else
{
goDoCommand('cmd_copy');
}
}
}
}
// }
}
}
function Autocopy_Pasteonmiddleclick_mousedown(e)
{
if(autocopyPrefs.getIntPref("StatusBarState") == 1)
{
if((!e.ctrlKey) && autocopyPrefs.getBoolPref("optPasteOnMiddleClick"))
{
if(e.button == 1)
{
gautocopy_doPaste = false;
if(e.target.inputField)
{
if(e.target.inputField.toString().match(/InputElement|TextAreaElement/i))
{
gautocopy_doPaste = true;
}
}
if(e.target.mTextbox)
{
if(e.target.mTextbox.inputField)
{
if(e.target.mTextbox.inputField.toString().match(/InputElement|TextAreaElement/i))
{
gautocopy_doPaste = true;
}
}
}
if(Autocopy_isTargetEditable(e.target))
{
gautocopy_doPaste = true;
}
if(gautocopy_doPaste)
{
if (getBrowser().mCurrentBrowser.autoscrollEnabled)
{
getBrowser().mCurrentBrowser.stopScroll();
}
}
}
}
}
}
function Autocopy_Pasteonmiddleclick_mouseup(e)
{
if(autocopyPrefs.getIntPref("StatusBarState") == 1)
{
if((!e.ctrlKey) && autocopyPrefs.getBoolPref("optPasteOnMiddleClick"))
{
if(e.button == 1)
{
if(gautocopy_doPaste)
{
goDoCommand('cmd_paste');
}
}
}
}
}
function Autocopy_isTargetEditable(target)
{
if(target)
{
if(target.toString().match(/InputElement|TextAreaElement/i))
{
return true;
}
}
if(target)
{
if(target.toString().match(/object XUL/i))
{
if(target.textbox.value)
{
return true;
}
}
}
if(target)
{
if(target.textbox)
{
return true;
}
}
if(target.ownerDocument.designMode)
{
if(target.ownerDocument.designMode.match(/on/i))
{
return true;
}
}
return false;
}
function Autocopy_isTargetEditableDispatcher(commandDispatcher)
{
if(commandDispatcher.focusedElement)
{
if(commandDispatcher.focusedElement.toString().match(/InputElement|TextAreaElement/i))
{
return true;
}
}
else
{
if(commandDispatcher.focusedWindow.document.designMode)
{
if(commandDispatcher.focusedWindow.document.designMode.match(/on/i))
{
return true;
}
}
}
return false;
}
function autocopy_getSelection()
{
var SelectionText = "";
var trywindow = false;
var focusedElement = document.commandDispatcher.focusedElement;
if(focusedElement && null != focusedElement)
{
try
{
SelectionText = focusedElement.value.substring(focusedElement.selectionStart, focusedElement.selectionEnd);
}
catch(e)
{
trywindow = true;
}
}
else
{
trywindow = true;
}
if(trywindow)
{
var focusedWindow = document.commandDispatcher.focusedWindow;
try
{
var winWrapper = new XPCNativeWrapper(focusedWindow, 'document', 'getSelection()');
var Selection = winWrapper.getSelection();
}
catch(e)
{
var Selection = focusedWindow.getSelection();
}
SelectionText = Selection.toString();
}
return SelectionText;
}
function autocopy_getClipboardContents()
{
var clip = Components.classes["@mozilla.org/widget/clipboard;1"].
getService(Components.interfaces.nsIClipboard);
if (!clip) return false;
var trans = Components.classes["@mozilla.org/widget/transferable;1"].
createInstance(Components.interfaces.nsITransferable);
if (!trans) return false;
trans.addDataFlavor("text/unicode");
clip.getData(trans,clip.kGlobalClipboard);
var str = new Object();
var strLength = new Object();
try{
trans.getTransferData("text/unicode",str,strLength);
}
catch(e){
return false;
}
if (str) str = str.value.QueryInterface(Components.interfaces.nsISupportsString);
if (str) pastetext = str.data.substring(0,strLength.value / 2);
return pastetext;
}
function autocopy_setClipboardContents(copytext)
{
try{
var str = Components.classes["@mozilla.org/supports-string;1"].
createInstance(Components.interfaces.nsISupportsString);
if (!str) return false;
str.data = copytext;
var trans = Components.classes["@mozilla.org/widget/transferable;1"].
createInstance(Components.interfaces.nsITransferable);
if (!trans) return false;
trans.addDataFlavor("text/unicode");
trans.setTransferData("text/unicode",str,copytext.length * 2);
var clipid = Components.interfaces.nsIClipboard;
var clip = Components.classes["@mozilla.org/widget/clipboard;1"].getService(clipid);
if (!clip) return false;
clip.setData(trans,null,clipid.kGlobalClipboard);
return true;
}
catch(e)
{
return false;
}
}
function autocopy_setClipboardContentsHtml(copyhtml, copytext)
{
try{
var strhtml = Components.classes["@mozilla.org/supports-string;1"].
createInstance(Components.interfaces.nsISupportsString);
if (!strhtml) return false;
strhtml.data = copyhtml;
var str = Components.classes["@mozilla.org/supports-string;1"].
createInstance(Components.interfaces.nsISupportsString);
if (!str) return false;
str.data = copytext;
var trans = Components.classes["@mozilla.org/widget/transferable;1"].
createInstance(Components.interfaces.nsITransferable);
if (!trans) return false;
trans.addDataFlavor("text/html");
trans.setTransferData("text/html",strhtml,copyhtml.length * 2);
trans.addDataFlavor("text/unicode");
trans.setTransferData("text/unicode",str,copytext.length * 2);
var clipid = Components.interfaces.nsIClipboard;
var clip = Components.classes["@mozilla.org/widget/clipboard;1"].getService(clipid);
if (!clip) return false;
clip.setData(trans,null,clipid.kGlobalClipboard);
autocopy_saveclipboard()
return true;
}
catch(e)
{
return false;
}
}
function autocopy_saveclipboard()
{
var clip = Components.classes["@mozilla.org/widget/clipboard;1"].
getService(Components.interfaces.nsIClipboard);
if (!clip) return false;
var trans = Components.classes["@mozilla.org/widget/transferable;1"].
createInstance(Components.interfaces.nsITransferable);
if (!trans) return false;
var importflavors = trans.flavorsTransferableCanImport();
var exportflavors = trans.flavorsTransferableCanExport();
trans.addDataFlavor("text/unicode");
clip.getData(trans,clip.kGlobalClipboard);
var dataType = new Object();
var data = new Object();
var dataLength = new Object();
try{
trans.getAnyTransferData(dataType, data, dataLength);
}
catch(e){
return false;
}
var autocopy_clipboardcontents = new AutocopyClipboardContents(dataType, data, dataLength);
gautocopy_clipboardcontents.unshift(autocopy_clipboardcontents); //adds to the begining of array
if(gautocopy_clipboardcontents.length > 10 + 1)
{
gautocopy_clipboardcontents.pop(); //remove last one if length to long
}
return true;
}
function autocopy_replaceoldclipboard(aIndex)
{
try
{
if(gautocopy_clipboardcontents[aIndex])
{
if(autocopy_saveclipboard())
{
aIndex = aIndex + 1;
var trans = Components.classes["@mozilla.org/widget/transferable;1"].
createInstance(Components.interfaces.nsITransferable);
if (!trans) return false;
trans.addDataFlavor(gautocopy_clipboardcontents[aIndex].dataType);
trans.setTransferData(gautocopy_clipboardcontents[aIndex].dataType.value, gautocopy_clipboardcontents[aIndex].data.value, gautocopy_clipboardcontents[aIndex].dataLength.value);
var clipid = Components.interfaces.nsIClipboard;
var clip = Components.classes["@mozilla.org/widget/clipboard;1"].getService(clipid);
if (!clip) return false;
clip.setData(trans,null,clipid.kGlobalClipboard);
if(aIndex > 1)
{
//move selected clipboardcontents to the begining of the clipboard array
var autocopy_clipboardcontents = gautocopy_clipboardcontents[aIndex];
gautocopy_clipboardcontents.splice(aIndex,1);
}
return true;
}
else
{
return false;
}
}
}
catch(e)
{
return false;
}
}
function autocopy_appendurltoclipboard()
{
var clipboardcontents = autocopy_getClipboardContents();
if(clipboardcontents)
{
var copytext = clipboardcontents + "\r\n\r\n" + window.content.location.href;
var copyhtml = clipboardcontents + "\r\n <br><br>(From: <a href=\"" + window.content.location.href + "\">" + window.content.location.href + ")</a>";
autocopy_setClipboardContents(copytext);
}
}用0.6X那个版本是可以用上的,最近的0.8总是出问题,于是一气之下用脚本代替了。一样可以!推荐一下楼主吧[/code] |
|
|
|
6楼#
发布于:2008-06-21 15:36
对了,用userchrome脚本加进userchrome.js里头哦……
|
|
|
|
7楼#
发布于:2008-06-21 15:36
终于弄好了,感谢以上几位
|
|


