2013-08-13 1 views
0

작동하지 않습니다. 내가 구글에 크롬 개발자 도구에서 스크립트 $("gbts").click();를 실행하면 그것을 잘 작동,하지만 난웹 브라우저 호출 스크립트는이 스크립트가 작동하지 않는 몇 가지 이유를 들어

"$가 정의되어 있지 않습니다"오류를 얻을 WebBrowser 컨트롤에 스크립트를 호출 할 때 아무 일도 일어나지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

+0

새 스크립트 요소의 onreadystatechange 이벤트 (또는 IE9 표준 모드 인 경우로드 이벤트)를 기다려야합니다. –

답변

0

Nir Azuelos가 대답의 일부를 제공합니다. 실제로이 코드를 삽입 할 때 jQuery 나이 API를 구현할 다른 것이 필요하다. (Zepto가 작동 할 것입니다.)

Chrome 콘솔에서 작동하는 이유는 개발자가 편리하게 Chrome에서 콘솔 자체에 $$$ 등을 정의한다는 것입니다.

콘솔에 $을 입력하면 function $() { [Command Line API] }이 출력으로 표시되는 것은 $이 페이지 자체에 정의되지 않았 음을 의미합니다. 따라서 페이지 내의 모든 스크립트에서 사용할 수 없습니다.

크롬 콘솔에서 제공되는 $ 함수는 jQuery에서 제공하는 $ 함수와 완전히 다르게 작동합니다. Chrome 콘솔에서 $ (기본값)는 document.querySelector과 유사한 동작으로 매핑됩니다. 설명서는 https://developers.google.com/chrome-developer-tools/docs/console을 참조하십시오. 당신은 단지 간단한 스크립트를 삽입 할 경우

는 모두 jQuery를 사용하지 않도록 할 수 있습니다, Why am I able to use jQuery syntax in Chrome's JS console when current page doesn't have jQuery loaded?

또한 참조하십시오. 원칙적으로 $document.querySelector으로 바꾸거나 $으로 전화하기 전에 document.QuerySelector$으로 지정하면 코드가 작동합니다.

"function TestClick() { document.querySelector('" + testElement + "').click() }"; 

기본 DOM API와 jQuery에는 큰 차이점이 있으므로 사용할 항목을 결정해야합니다.

1

$은 아마도 jQuery 인스턴스에 대한 참조 일 것입니다. 이 기능을 사용하려면 웹 페이지에 jQuery를 포함시켜야합니다.

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
관련 문제