2011-07-03 13 views
6

मैं यह पता लगाने की कोशिश कर रहा हूं कि क्यों मेरे एप्पलस्क्रिप्ट कुछ भी नहीं करता है जब एक ही जावास्क्रिप्ट कोड सफारी लोकेशन बार में टाइप किया जाता है।एप्पलस्क्रिप्ट निष्पादित में 'जावास्क्रिप्ट' कॉल क्यों नहीं करता है जब ब्राउज़र में टाइप किया गया कोड करता है?

एक खोज परिणाम पृष्ठ पर जाएं, जैसे: http://www.google.com/search?q=test। सही व्यवहार के लिए, स्थान पट्टी में इस टाइप करें और उसे दर्ज करें:

javascript: document.getElementsByClassName('vspib')[0].click(); 

आप देखेंगे कि यह पहले खोज परिणाम के लिए ताल चयन करता है।

यही वह है जो मैं जावास्क्रिप्ट के माध्यम से करना चाहता हूं। तो मैंने निम्नलिखित टाइप किया:

tell application "Safari" 
    activate 
    do JavaScript "document.getElementsByClassName('vspib')[0].click();" in document 1 
end tell 

हालांकि, यह कुछ भी नहीं करता है। कोई विचार?

उत्तर

14

समस्या यह है कि do JavaScript को सफारी विंडो में एक टैब को सही ढंग से संबोधित करना है।

निम्न स्क्रिप्ट, मेरे लिए काम करता है, तो खोज परिणाम पृष्ठ frontmost सफारी विंडो में मौजूदा टैब है:

tell application "Safari" 
    activate 
    set theScript to "document.getElementsByClassName('vspib')[0].click();" 
    do JavaScript theScript in current tab of first window 
end tell 
+3

बहुत बहुत धन्यवाद। किसी कारण से आपका कोड हर बार मेरे लिए काम नहीं कर रहा था, लेकिन यह संशोधन चाल चल रहा था: फ्रंट विंडो के सक्रिय टैब जावास्क्रिप्ट को निष्पादित करें "document.getElementsByClassName ('vspib') [0] .click();" – mix

+0

@mix यह मेरे लिए काम करता है! – FrontENG

संबंधित मुद्दे