zeroclipboard를 사용하여 사용자 스크립트 내에서 상당히 큰 목록의 각 행에 "복사"링크를 추가하고 있습니다. 이를 위해 this page에 나열된 것과 비슷한 메서드를 사용합니다.이 메서드는 사용자가 행 위에 마우스를 놓을 때 각 행의 ZeroClipboard.Client() 요소가 만들어집니다. 이것은 FireFox에서는 훌륭하게 작동하지만 Chrome에서는 그렇지 않습니다.ZeroClipboard 사용자 스크립트가 Firefox에서 작동하지만 firefox에서 작동합니다.
참고 사항 : ZeroClipboard.js 파일의 내용을 외부 파일에 포함하는 대신 사용자 스크립트 자체에 복사했습니다. 모든 CONSOLE.LOG이 블록에서
function main(){
window.clipboard = {
load: function(){
if(!clipboard.initialized){
ZeroClipboard.setMoviePath("http://www.swfcabin.com/swf-files/1343927328.swf");
clipboard.initialized=true;
console.log("Clipboard intialized");
}
},
add: function(element){
clipboard.load();
var clip = new ZeroClipboard.Client();
console.log('Clipboard client loaded: ' + element.id);
clip.glue(element, element.parentNode);
console.log('Clipboard glued: ' + element.id);
clip.setText(element.getAttribute('link'));
console.log('Clipboard text set: ' + element.getAttribute('link'));
clip.addEventListener('complete',function(client,text) {
console.log('Clipboard copied: ' + text);//doesn't fire in chrome
});
clip.addEventListener('load',function(client) {
console.log('Clipboard loaded: ' + element.getAttribute('link'));
});
}
}
//other code in user script including injecting above markup
//as well as contents of ZeroClipboard.js
window.ZeroClipboard = { ... }
}
var script = document.createElement("script");
script.appendChild(document.createTextNode('('+main+')()'));
(document.head || document.body || document.documentElement).appendChild(script);
: 여기
클립 보드의 클라이언트 객체를 추가 코드 세그먼트의 각 요소 여기서<span style="color:blue; text-decoration:underline; cursor:pointer" id="copy_'+id+'" class="CopyLink" link="'+url+'" onmouseover="clipboard.add(this)">Copy</span>
위한 복사 버튼을 생성하는 태그이다 FireFox에서 마우스를 놓고 복사 범위를 클릭하면 '완전한'청취자 화재를 제외하고 모두 크롬이 발생합니다. this page의 예를 사용하여 Chrome에서 ZeroClipboard가 작동하는지 확인할 수있었습니다. 플래시 개체가 올바른 위치의 페이지에 추가되고 있는지 확인할 수도 있지만 단순히 클릭에 응답하지 않습니다.
zeroclipboard 코드는 더 이상 site에 따라 유지 관리되지 않으므로 다른 사용자가 나를 도와 줄 수 있기를 바랍니다. 나는 mouseover에서 크롬에 내장 된 플래시 객체를 동적으로 추가하거나 Chrome에서 사용자 스크립트와 greasemonkey로 파이어 폭스를 비교하는 등의 문제가있을 것이라고 생각하고 있습니까? 어떤 도움을 주시면 대단히 감사하겠습니다. 감사합니다.
답장을 보내 주시면 감사하겠습니다. 내가 볼 수있는 문제는 파이어 폭스에서 이것을 사용할 때, 주입 된 영화의 수가 200ish 이상이되면 플래시가 충돌한다는 것입니다. 나는 내가 그들을 추가하지 않고 제거하는 것이라면 이것이 사실이 될지 걱정된다. –
내 솔루션은 하나의 ZC 객체를 만들고 주위를 움직입니다 (호버 이벤트는 플래시 객체의 위치를 다시 지정합니다).하지만 이동하자마자 크롬이 그것을 잃고 clip.setText가 작동을 멈 춥니 다. (이동 전에 setText가 작동하기는하지만 이후에는 작동하지 않으며 어떤 범위에서 호출되었는지는 중요하지 않습니다.) - 갑자기 FF15와 유사한 문제가 발생했습니다. ( – RozzA
흥미롭게도 나는 ZC 객체가 페이지/요소로드에서 동적으로 작성되었습니다. 작동하지만 플래시 충돌이 발생합니다. – RozzA