AppleScript : 자바 스크립트의 루프

케빈

이 코드를 반복하여 'auto-date-time'클래스가 발생할 때마다 다른 변수를 반복하고 설정할 수 있습니까?

tell application "Safari"
        set myValue to do JavaScript "document.getElementsByClassName('auto-date-time')[0].innerHTML;" in current tab of window 1
    end tell

예 : myValue1 document.getElementsByClassName ( 'auto-date-time') [1] MyValue2 document.getElementsByClassName ( 'auto-date-time') [2] MyValue3 document.getElementsByClassName ( 'auto-date-time') [3

이게 잘 작동한다는 걸 알아

tell application "Safari"
    set myValue to do JavaScript "var outPut=[]; var arr=document.getElementsByClassName('sortable fraudScoringTransactionCCSummary');for (var i in arr) {outPut.push(arr[i].innerHTML)};outPut;" in current tab of window 1
end tell

그러나 나는 그것을 다르게하려고 노력하고 있습니다. 그렇게 할 수 있습니까?

나는 이것을 시도했지만 분명히 꽤 나빠 보인다 + 변수의 문제를 해결하지 않을 것입니다

     repeat with counter from 1 to 10
    tell application "Safari"
        set myValue to do JavaScript "document.getElementsByClassName('auto-date-time')[" & counter & "].innerHTML;" in current tab of window 1
    end tell

    if myValue = missing value then
        exit repeat
    end if
end repeat
CJK

innerHTMLHTML 요소 컬렉션에 대한 속성 값 의 AppleScript 목록을 얻는 가장 깨끗하고 효율적인 방법 은 다음과 같습니다.

tell application "Safari" to tell ¬
    the front document to set ¬
    myList to do JavaScript ¬
    "Array.from(
        document.getElementsByClassName('auto-date-time'),
        x => x.innerHTML
    );"

수정 (2019-04-02) :

반환 값이 없다고보고 한 아래 주석을 처리하고 위의 JavaScript에 대한 콘솔 반환 값을 제공하는 대신 시도 할 수있는 대체 방법은 다음과 같습니다.

tell application "Safari" to tell document 1 to set myList to ¬
    do JavaScript "[...document.getElementsByClassName('auto-date-time')]
                   .map( x => x.innerText );"

두 가지 차이점은 innerText대신 속성을 사용하는 것입니다 innerHTML(첫 번째 JavaScript에도 적용 할 수 있음)와 배열을 구성하는 데 사용되는 방법 (최신 버전의 Safari를 실행한다고 가정해도 차이가 없어야 함) .


오류 포착에 대한 참고 사항

try당신이하는 경향이있는 방식으로 블록 을 사용하는 습관에서 벗어나도록 노력하십시오 . 예상하지 못한 오류로 인해 스크립트가 종료되는 것을 방지 하거나 오류가 발생 하는 이유를 이해하지 못하는 경우 스크립트를 사용해서는 안됩니다 . 특정 상황에서 발생할 것으로 예상되는 오류를 포착하고 그 원인을 파악하고이를 유리하게 사용할 수 있도록하는 데 사용됩니다. 그렇지 않으면 예상치 못한 오류가 스크립트의 결함 및 발생 위치 /시기에 대해 경고하는 것을 중지하는 것뿐입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

자바 스크립트의 for 루프 함수 내부의 for 루프

분류에서Dev

자바 스크립트 루프 프로

분류에서Dev

자바 스크립트 루프에 PHP

분류에서Dev

자바 스크립트 루프 평가

분류에서Dev

자바 스크립트 루프 계산

분류에서Dev

자바 스크립트 루프 성능

분류에서Dev

루프의 자바 스크립트 onload 이벤트

분류에서Dev

자바 스크립트의 for 루프 내부의 if 문

분류에서Dev

자바 스크립트의 For 루프에 값이 없음

분류에서Dev

자바 스크립트의 비동기 루프

분류에서Dev

자바 스크립트 함수의 지연 루프

분류에서Dev

if / else 루프의 자바 스크립트 변수 선언

분류에서Dev

자바 스크립트 객체의 For 루프

분류에서Dev

자바 스크립트 : 루프의 여러 Switch 문

분류에서Dev

For 루프 체인의 자바 스크립트 끝 콜백

분류에서Dev

루프 자바 스크립트의 동적 변수

분류에서Dev

for 루프의 간단한 자바 스크립트 정규식

분류에서Dev

루프의 자바 스크립트 변수 이름

분류에서Dev

자바 스크립트의 출력 객체 배열 루프

분류에서Dev

자바 스크립트의 루프, 클로저 및 addEventListener

분류에서Dev

중첩 for 루프 자바 스크립트의 이상한 결과

분류에서Dev

중첩 for 루프 자바 스크립트의 이상한 결과

분류에서Dev

책을 표시하는 자바 스크립트의 For 루프;

분류에서Dev

For 루프의 동적 자바 스크립트 조건

분류에서Dev

동기 자바 스크립트 주입의 For 루프

분류에서Dev

PHP 루프 내부의 자바 스크립트 파일 변환

분류에서Dev

자바 스크립트의 루프 로컬 저장소 개체

분류에서Dev

자바 스크립트의 배열 루프

분류에서Dev

자바 스크립트의 중첩 된 for 루프

Related 관련 기사

뜨겁다태그

보관