2014-09-19 3 views
0

저는 거의 항상 항상 unsafeWindow 함수가 필요한 몇 가지 자체 작성된 Greasemonkey userscripts를 실행하고 있습니다. 불행히도 그 기능은 대부분 중단되었지만 지금은 스크립트 수정에 어려움을 겪고 있습니다. 나는 세 가지 새로운 기능 (cloneInto(), exportFunction()createObjectIn())이있는 읽었습니다,하지만 난 공개적으로 내가 this page 나를 어떻게 원하는 것을하지 않는다는 것을 인정한다.unsafeWindow는 더 이상 작동하지 않습니다. 어떻게해야합니까?

누군가 내가이 세 가지 기능 중 어떤 기능을 사용해야하는지, 그리고 다시 그 기능을 다시 작동하도록 변환하는 방법에 대한 간단한 설명을 누군가가 나에게 줄 수 있습니까? 미안하지만이 물건을 잘 못해. 간단한 예로서

:

$("#someid").append('<a href="#" onclick="somefunction();return false;">Click</a>'); 

unsafeWindow.somefunction = function() { 
    alert("Hello!"); 
} 
+0

그 복제본은 내 문제와 아무런 관련이 없습니다. 그 또는 나는 어떤 연결을 찾을 수 없습니다. – Selbi

+1

나는 당신의 문제와 관련이 있다고 생각한다. – SamB

답변

0

그리스 몽키 2.0 라디칼 변경 unsafeWindow 처리. 지금 당신은

unsafeWindow.somefunction = exportFunction(function() { 
    alert("Hello!"); 
}, unsafeWindow); 

또는

exportFunction(function() { 
    alert("Hello!"); 
}, unsafeWindow, {defineAs: "somefunction"}); 

이 MDN에 exportFunction를 참조 사용해야합니다. createObjectIncloneInto에 관심이있을 수 있습니다.

+0

나는이 세 가지 기능을 안다고 말했다. 내가 모르는 것은 제대로 사용하는 방법이다. 또한, 당신이 제공 한 코드에서 더 이상 이름을 볼 수 없습니다 ("somefunction"). – Selbi

+0

@ user3216060 그 부분을 잊어 버렸습니다. 정확히 당신이 이해하지 못하는 것은 무엇입니까? – Oriol

+0

흠, 아직도 "ReferenceError : somefunction이 정의되지 않았습니다"라는 것 같습니다. 나는 두 가지 방법을 시도했다. Firefox/Greasemonkey가이 기능의 존재를 완전히 무시한 것과 같습니다. 어떤 생각이 잘못된거야? – Selbi

관련 문제