웹 사이트 측에서 실행되는 foo()
JavaScript 함수와 동적으로 생성 된 인수 arg1,...,arg5
이 포함 된 다음 앵커 태그가 있습니다. id
값과 argN
값 독특한와, 해당 페이지에 걸쳐 이러한 앵커 태그의 몇 가지가 있습니다 : 나는 프로그래밍 인수를 찾고,이 요소에 대한 모든 안타 통해 반복하여 foo()
기능을 발사하려는 Greasemonkey, Chrome 및 unsafeWindow.foo()
<a href="#" id="foo1234567890" onclick="javascript:foo(arg1,arg2,arg3,arg4,arg5);return false;" target="_self" title="foobarbaz"> blah </a>
그 인수를 Greasemonkey의
unsafeWindow.function(args)
호출에 전달합니다. 나는이 스크립트를 설치하고 실행하면
function removeAllProperties() {
var xpath = "//A[@title='foobarbaz']";
var actionNodes = document.evaluate(
xpath,
document,
null,
XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
null
);
var total = actionNodes.snapshotLength;
for (var i=0; i < total; i++) {
var candidate = actionNodes.snapshotItem(i);
//alert(candidate.nodeName);
if (candidate.nodeName === "A") {
var onclick_value = candidate.getAttribute('onclick');
var needle = /javascript:foo\((.*)\);return false\;/;
onclick_value.match(needle);
//alert(onclick_value);
//alert(RegExp.$1);
var script_args = RegExp.$1;
if (confirm(script_args)) {
unsafeWindow.foo(script_args);
}
}
}
}
removeAllProperties();
, 내가 인수 arg1,...,arg5
와 경고를 얻을 :
여기에 내가 지금까지 쓴 그리스 몽키 스크립트입니다. 내가 확인을 클릭하면, 나는 OS의 X에 대한 구글 크롬 5.0.375.125에서 다음과 같은 오류가 발생합니다 : 문제
Uncaught TypeError: Object [object DOMWindow] has no method 'foo'
웹 페이지는 확실히 foo()
있다 - 나는 blah
를 클릭하면 다음 onclick
이벤트는 foo()
를 트리거합니다. 이 Greasemonkey 스크립트를 통해 작업 할 수 없습니다.
unsafeWindow.function(args)
을 잘못 사용하고 있습니까? 아니면 Google 크롬이 원격 JavaScript 기능을 트리거하는이 방법을 지원하지 않습니까?
이 함수를 사용해야하는 다른 방법이 있습니까? 아니면 다른 방법을 사용해야합니까?
귀하의 조언에 감사드립니다.
건배 , 매우 감사! –