জাভাস্ক্রিপ্ট ব্যবহার করে ক্রোমে টেক্সট হাইলাইট করার জন্য অ্যাপ্লস্ক্রিপ্ট


2

গুগল ক্রোমের সাথে এটির কাজ করার জন্য, এই স্ক্রিপ্টটি কীভাবে সাফারিতে পাঠ্যকে হাইলাইট করে তা কীভাবে গ্রহণ করব তা আমি বুঝতে পারি না:

set myList to {"AppleScript", "2018", "demo@apple.com"}

tell application "Safari"
    'window.find()' command change the scroll position when it select the founded string
    set scrollPos to do JavaScript "document.designMode = 'on'; [window.pageXOffset.toString(),window.pageYOffset.toString()]" in document 1
    repeat with thisText in myList
        do JavaScript "var sel = window.getSelection();\n                sel.collapse(document.body, 0);//------    To start at the beginning of the document, not after the selectioned text\n                while (window.find('" & thisText & "', true)) {document.execCommand('HiliteColor', false, '#5cdf64');}\n                sel.collapseToEnd()" in document 1
    end repeat

    -- restore the scroll position
    do JavaScript "document.designMode = 'off';  window.scrollTo(" & (item 1 of scrollPos) & ", " & (item 2 of scrollPos) & ")" in document 1
end tell

এখানে আমার গুগল ক্রোম সংস্করণটি রয়েছে:

set myList to {"AppleScript", "2018", "CLOSED"}

tell application "Google Chrome"
    tell tab 3 of window 1 to set scrollPos to execute javascript "document.designMode = 'on'; [window.pageXOffset.toString(),window.pageYOffset.toString()]"

    repeat with thisText in myList
        execute javascript "var sel = window.getSelection();\n                sel.collapse(document.body, 0);//------    To start at the beginning of the document, not after the selectioned text\n                while (window.find('" & thisText & "', true)) {document.execCommand('HiliteColor', false, '#5cdf64');}\n                sel.collapseToEnd()"
    end repeat
    execute javascript "document.designMode = 'off';  window.scrollTo(" & (item 1 of scrollPos) & ", " & (item 2 of scrollPos) & ")"
end tell

উত্তর:

tell application "Google Chrome"
    execute tab 3 of window 1 javascript "document.designMode = 'on'; [window.pageXOffset.toString(),window.pageYOffset.toString()]"
        --> {"0", "0"}
    execute current application javascript "var sel = window.getSelection();\n                sel.collapse(document.body, 0);//------    To start at the beginning of the document, not after the selectioned text\n                while (window.find('AppleScript', true)) {document.execCommand('HiliteColor', false, '#5cdf64');}\n                sel.collapseToEnd()"
        --> missing value
    execute current application javascript "var sel = window.getSelection();\n                sel.collapse(document.body, 0);//------    To start at the beginning of the document, not after the selectioned text\n                while (window.find('2018', true)) {document.execCommand('HiliteColor', false, '#5cdf64');}\n                sel.collapseToEnd()"
        --> missing value
    execute current application javascript "var sel = window.getSelection();\n                sel.collapse(document.body, 0);//------    To start at the beginning of the document, not after the selectioned text\n                while (window.find('CLOSED', true)) {document.execCommand('HiliteColor', false, '#5cdf64');}\n                sel.collapseToEnd()"
        --> missing value
    execute current application javascript "document.designMode = 'off';  window.scrollTo(0, 0)"
        --> missing value
end tell
Result:
missing value

এটির মূল্যের জন্য, 'window.find()' commandলাইনের শুরুতে 'অজানা টোকেন' থাকার কারণে আমি সেই সাফারিটিকে কাজ করতে পারি না । সেই লাইনটি কি কোনও মন্তব্য হওয়ার অর্থ ছিল? আপনি এই স্ক্রিপ্টটি কোথা থেকে পেয়েছেন?
grg

শুধু কৌতূহলী, এই লিপিটির উদ্দেশ্য কী?
db

ব্যাখ্যা করা শক্ত, তবে মূলত আমি যেমন পরিবর্তনশীল নাম, আইপি এবং অন্যান্য ডেটা পেয়েছি এবং আমি বিভিন্ন ট্যাবগুলিতে এই তথ্যগুলি সন্ধান করি, তাই তাদের হাইলাইট করা খুব দ্রুত তাদের স্পষ্ট করা সহায়ক
কেভিন

উত্তর:


5

আপনি গুগল ক্রোমে অ্যাপলস্ক্রিপ্ট থেকে জাভাস্ক্রিপ্ট সক্ষম করেছেন তা নিশ্চিত করুন

অ্যাপলস্ক্রিপ্টের মাধ্যমে জাভাস্ক্রিপ্ট কার্যকর করা বন্ধ করা আছে। এটি চালু করতে, মেনু বার থেকে,> বিকাশকারী> অ্যাপল ইভেন্টগুলি থেকে জাভাস্ক্রিপ্ট মঞ্জুরি দিন go

আপনার স্ক্রিপ্টটিতে এটির কাজ করার জন্য আমি কিছু পরিবর্তন করেছি, পরিবর্তনগুলি সাহসীভাবে হাইলাইট করে।

  • স্ক্রোলপোস ভেরিয়েবল এবং উইন্ডো অবস্থানটি নির্ধারণ করে এবং সেট করে স্ক্রোলিং সম্পর্কিত এর সাথে সম্পর্কিত হ্যান্ডলিং অতিমাত্রায় ছিল, সুতরাং এর সমস্ত উল্লেখ মুছে ফেলা হয়েছে।
  • সমস্ত কার্যকর ক্রিয়াকলাপ tell window 1কেবল একটি ক্রিয়া নয়, প্রয়োজন । আমি to tell window 1অ্যাপ্লিকেশনটির ঘেরে যোগ করেছি ।
  • এক্সিকিউট ক্রিয়াটি কেবল জাভাস্ক্রিপ্ট নয়, একটি রেফারেন্স এবং একটি জাভাস্ক্রিপ্ট স্ট্রিং নেয়। আপনি আপনার সমস্ত কার্যকর কার্যকারীর উপর রেফারেন্স মিস করছেন।
L "অ্যাপলস্ক্রিপ্ট", "2018", "বন্ধ" my এ মাইলিস্ট সেট করুন

অ্যাপ্লিকেশনকে "গুগল ক্রোম" বলুন উইন্ডো 1 বলুন সক্রিয় ট্যাব জাভাস্ক্রিপ্ট 
    এক্সিকিউট করুন "ডকুমেন্ট.ডিজাইনমোড = 'চালু';" - স্ক্রোলপোস এবং পৃষ্ঠা অফসেট সরানো হয়েছে

    মাইলিস্টে এই পাঠ্যটির সাথে পুনরাবৃত্তি করুন
        চালানো সক্রিয় ট্যাব জাভাস্ক্রিপ্ট "Var SEL = window.getSelection ();
                    বিক্রয়.collapse (ডকুমেন্ট.বডি, 0);
                    (উইন্ডো.ফাইন্ড ('' & এই পাঠ্য & '', সত্য))) while ডকুমেন্ট.এক্সেকমন্ড ('হিলাইটকলার', মিথ্যা, '# 5cdf64');}
                    sel.collapseToEnd () "
    শেষ পুনরাবৃত্তি
    চালানো সক্রিয় ট্যাব জাভাস্ক্রিপ্ট "document.designMode = 'বন্ধ';" - স্ক্রোলপস এবং পৃষ্ঠা অফসেট সরানো 
শেষ বলুন

এটি সমস্ত ট্যাবগুলিতে চালাতে, এটিকে মোড়ানো করুন repeat with atab in tabs:

বলতে অ্যাপ্লিকেশান "গুগল ক্রোম" উইন্ডো 1 বলতে
     ট্যাবে atab থেকে সঙ্গে পুনরাবৃত্তি 
        চালানো atab থেকে জাভাস্ক্রিপ্ট "document.designMode = 'এ';" - স্ক্রোলপোস এবং পৃষ্ঠা অফসেট সরানো হয়েছে

        মাইলিস্টে এই পাঠ্যটির সাথে পুনরাবৃত্তি করুন
            চালানো atab থেকে জাভাস্ক্রিপ্ট "Var SEL = window.getSelection ();
                    বিক্রয়.collapse (ডকুমেন্ট.বডি, 0);
                    (উইন্ডো.ফাইন্ড ('' & এই পাঠ্য & '', সত্য))) while ডকুমেন্ট.এক্সেকমন্ড ('হিলাইটকলার', মিথ্যা, '# 5cdf64');}
                    sel.collapseToEnd () "
        শেষ পুনরাবৃত্তি
        চালানো atab থেকে জাভাস্ক্রিপ্ট "document.designMode = 'বন্ধ';" - স্ক্রোলপোস এবং পৃষ্ঠা অফসেট সরানো
     শেষ পুনরাবৃত্তি 
শেষ বলুন

এটা নিখুঁত ধন্যবাদ! আপনি কি জানেন যে আমি প্রতিটি ট্যাবে এই হাইলাইটটি চালাতে পারি? আমি ট্যাবগুলির মধ্যে বিভিন্ন লিঙ্কগুলিতে ক্লিক করতে পারি বা সম্ভবত নতুন একটি খুলতে পারি, আমার কি পুনরাবৃত্তি মোড চালানো উচিত?
কেভিন

@ কেভিন repeat with atab in tabs, সম্পাদনা দেখুন
গ্রিগ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.