অ্যাপ্লিকেশন এবং সাফারি চালানোর সময় সংযোগটি অবৈধ ত্রুটি


3

নিম্নলিখিত do javascript "document.body.innerText"স্ক্রিপ্টের অংশটি চালিয়ে যাওয়ার আগে কোনও পৃষ্ঠা লোড হওয়ার জন্য অপেক্ষা করছে les এটি একটি জিনিস বাদে সত্যই ভাল কাজ করছে বলে মনে হচ্ছে। যদি সাফারি চলমান থাকে তবে বর্তমানে কোনও উইন্ডো খোলা নেই, তবে এই স্ক্রিপ্টটি চালানো ফলাফল

ত্রুটি "সাফারি একটি ত্রুটি পেয়েছে: সংযোগটি অবৈধ" " সংখ্যা -609

তবুও যদি আমি সাফারিটি বন্ধ হয়ে থাকে তখন এটি চালিত হয় এটি সাফারি চালু করে, নির্দিষ্ট ইউআরএল যায় এবং পৃষ্ঠাটি লোড হয়ে গেলে জাভাস্ক্রিপ্ট অংশটি চালায়। আমি বুঝতে পারছি না যে যদি সাফারি কোনও উইন্ডো না খোলা থাকলে চলতে থাকে তবে এটির ত্রুটি কেন হয়।

tell application "Safari"
    activate
    if not (exists document 1) then reopen
    tell front document
        set URL to "http://example.com"
        repeat until length of (source as text) is not 0
            delay 0.5
        end repeat
        do javascript "document.body.innerText"
    end tell
end tell

ত্রুটি সর্বদা source as textস্ক্রিপ্টের অংশটি হাইলাইট করে । আমি পরিবর্তন চেষ্টা length of (source as text) is not 0করার repeat until name is "example domain"রয়েছে গোমরাহী ছাড়া এখনও ঘটে যদি কোনো জানালা খোলা থাকে এবং সাফারি চলছে।

উত্তর:


2

আপনি অবস্থান অদলবদল করার প্রয়োজন activateলাইন কোড দিয়ে if not (exists document 1) then reopenলাইন কোড

উদাহরণ:

tell application "Safari"
    if not (exists document 1) then reopen
    activate
    tell front document
        set URL to "http://example.com"
        repeat until length of (source as text) is not 0
            delay 0.5
        end repeat
        do javascript "document.body.innerText"
    end tell
end tell

নীচে স্ক্রিপ্ট সম্পাদকের স্ক্রিনশটটি সাফারি খোলা এবং কোনও উইন্ডো খোলা ছাড়াই চালানো হয়েছিল।

স্ক্রিপ্ট সম্পাদক উইন্ডো

প্রথমে আমাকে "[√] মেনু বারে বিকাশ মেনু" (সাফারি> পছন্দসমূহ…> উন্নত) এবং তারপরে বিকাশ মেনুতে "অ্যাপল ইভেন্টগুলি থেকে জাভাস্ক্রিপ্টের অনুমতি দিন" ক্লিক করতে হবে। এরপরে আমি আপনার অ্যাপলস্ক্রিপ্ট কোডটি স্ক্রিপ্ট সম্পাদকটিতে অনুলিপি করে আটকালাম এবং স্ক্রিপ্ট রান করুন বোতামটি ক্লিক করেছি এবং এটি কোনও ত্রুটি ছাড়াই দৌড়ে গিয়েছিল এবং http://example.com ওয়েব পৃষ্ঠার পাঠ্য ফেরত দিয়েছে । তবে প্রথমবার স্ক্রিপ্টটি চালানোর সময় সাফারি বন্ধ ছিল।

আপনার প্রশ্নটি আবার পড়ার পরে, আমি কোনও উইন্ডো খোলা না রেখে সাফারিটি খোলা রেখে ত্রুটিটি পুনরুত্পাদন করতে সক্ষম হয়েছি। আমি তারপরে আপনার কোডটি আরও নিখুঁতভাবে দেখেছি এবং লক্ষ্য করেছি activateযে আগে ছিল if not (exists document 1) then reopenএবং activateত্রুটি এড়াতে এটির পরে হওয়া দরকার।


activateভুল জায়গায় থাকার পরেও আমার মন কেটে যায় না। এখন পুরোপুরি কাজ করে। আমার অ্যাপল সম্পর্কিত আরও একটি প্রশ্ন সমাধানের জন্য আপনাকে ধন্যবাদ।
I0_ol
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.