অ্যাপ্লিক্রিপ্ট সহ সাফারির বর্তমান ট্যাব থেকে খারাপ URL পান


0

My.yahoo.com ওয়েব সাইটটিতে একটি জ্বালাময়ী বাগ রয়েছে (আমি অবাক হয়ে দেখি এটি কার্যকরভাবে কাজ করে) যেখানে এর লিঙ্কগুলির একটিতে ক্লিক করা কখনও কখনও নীচের মতো একটি URL তৈরি করে:

http://sports.yahoo.comhttps//sports.yahoo.com/news/rested-kings-ready-host-not-rested-hurricanes-082033171--nhl.html

উদাহরণস্বরূপ, আপনি দেখতে পাচ্ছেন যে " http://sports.yahoo.com " দু'বার পুনরাবৃত্তি হয়েছে। সার্ফ করার সময় আমি এই ইউআরএলগুলি সংশোধন করার সবচেয়ে সহজ উপায়টি খুঁজে পেতে চেয়েছিলাম। দুঃখের বিষয়, আমি প্রথম প্রয়োজনীয় ক্রিয়াটিও সম্পাদন করতে পারি না , যা বর্তমান ট্যাবটির শিরোনাম দণ্ড থেকে URL টি টান। আপনি ভাববেন যে অ্যাপ্লিক্রিপ্টে নীচের কমান্ডটি সাফারিতে প্রেরণ করা কার্যকর হবে:

set thisTabUrl to the URL of the current tab in window 1

দুঃখজনকভাবে, স্পষ্টতই, যদি URL টি অবৈধ হয় তবে আমি পাই:

file:///Applications/Safari.app/Contents/Resources/

অ্যাপলস্ক্রিপ্টে প্রসেস করার জন্য বর্তমান ট্যাবটির ইউআরএল অঞ্চল বিষয়বস্তু আমাকে দেওয়ার জন্য আমি কি সাফারিকে কোক্সেক্স করতে পারি, যা বর্তমান ট্যাবটির URL টি সঠিক url এ সেট করার চেষ্টা করবে এবং সেই পৃষ্ঠাটি খুলবে? আমি নিশ্চিত যে একই ট্যাবটিতে সঠিক ইউআরএল খোলার জন্য আমার কাছে বাকি প্রয়োজনীয় কোড রয়েছে।

অতিরিক্ত creditণের জন্য, সাফারিতে সার্ফ করার সময় এই জাতীয় URL টির মুখোমুখি হওয়ার সময় এই স্ক্রিপ্টটি আরম্ভ করার সবচেয়ে সহজ উপায় কী হতে পারে?


আপনার সাফারি এক্সটেনশনগুলি সন্ধান করা উচিত।
এলএইচ

আমি আবহাওয়া জানি না বা আপনার উত্তর আমি পোস্ট করেছিলাম তা দেখেছি তবে আমি এটি মুছে ফেলেছি কারণ এটি লেখার পরে আমি দেখেছি যে আপনার উদাহরণের URL টি কেবলমাত্র ইউআরএল দ্বিগুণ নয়, মূল ইউআরএল প্লাস সংযুক্ত URL (I) অনুমান করা এটি সেরা উপায়)। সুতরাং আমি যুক্তিটি সঠিকভাবে কাজ করতে চাইছিলাম না। আমি আরও কিছু টেস্টিং করব এবং আমার পছন্দটি যদি শেষ হয় তবে আমি সম্পাদনা করব এবং উত্তরটি মুছে ফেলব।
ব্যবহারকারী 3439894

আপনি বলেছিলেন "উদাহরণস্বরূপ, আপনি এটি দেখতে পারেন "http://sports.yahoo.com"এবং আপনার উদাহরণটি http://প্রথম যেমন রয়েছে তেমন সত্য নয় https//, sদ্বিতীয়টির নোটটি প্রথমটিতে নেই এবং দ্বিতীয়টি অনুপস্থিত রয়েছে is :তাই আপনি যা পোস্ট করেছেন তা যদি হয় একটি টাইপো, দয়া করে সাফারি থেকে
অনুলিপিযুক্ত

ঠিক আছে, অবশেষে আমি এই প্রশ্নটি ফিরে দেখার এবং আমার মুছে ফেলা মূল উত্তরটি সংশোধন করার সুযোগ পেয়েছি। আশা করি এটি আপনার পক্ষে কার্যকর হবে।
ব্যবহারকারী 3439894

উত্তর:


1

আমি সমস্যাটি পুনরুত্পাদন করার জন্য বহুবার চেষ্টা করেছি, তবে আমি পারিনি। সুতরাং অনুলিপিটি অনুলিপি দুটি অনুলিপি করে অনুলিপি করে অনুলিপি করে কপি এবং পেস্টের মাধ্যমে এবং সেখান থেকে গিয়ে পরীক্ষা করা হয়েছিল। আপনি আপনার প্রশ্নের যে খারাপ URL দেখিয়েছেন তাও আমি ব্যবহার করেছি।

সাফারিতে, এটি ডাবল ইউআরএল থেকে একটি স্বয়ংক্রিয় URL হিসাবে চালিত একটি স্বয়ংক্রিয় পরিষেবা হিসাবে চালিত ব্যবহার করে ডাবল ইউআরএল থেকে একটি বৈধ URL তৈরি করার চেষ্টা করে Bএবং বর্তমান দস্তাবেজ (উইন্ডো, ট্যাব) যথাযথ URL এ সেট করে।

নীচের চিত্রে প্রদর্শিত হিসাবে সেটিংস সহ একটি অটোমেটার পরিষেবা তৈরি করুন এবং এটি সংরক্ষণ করুন:
খারাপ ইউআরএল ঠিক করুন

তারপরে সিস্টেম পছন্দসমূহ> কীবোর্ড> শর্টকাটস> পরিষেবাদিতে সাধারণের কাছে স্ক্রোল করুন,
বাজে ইউআরএল ঠিক করুন নির্বাচন করুন, শর্টকাট যুক্ত করুন এবং টাইপ করুন:B

খারাপ ইউআরএল অটোমেটার পরিষেবা ঠিক করুন


অটোম্যাটর পরিষেবার জন্য অ্যাপলস্ক্রিপ্ট কোড :

on badURL()
    try
        --    # Put the bad URL on the Clipboard.
        tell application "Safari"
            activate
            delay 0.5
            tell application "System Events"
                key code 37 using {command down} # ⌘L
                delay 0.5
                key code 8 using {command down} # ⌘C
                delay 0.5
            end tell
        end tell
        --    # Retrieve the bad URL from the Clipboard.
        set theBadURL to get (the clipboard)
        --    # Trim the first eight characters off of 'theBadURL'.
        --    # This is done because the bad URL can have an occurrence of both 'http' and 'https' in the string in either
        --    # order and by trimming off, it lessens the amount of logic necessary to build a good URL from the bad URL.
        --    # The good URL, after all, is going to be built from what's after the second occurrence of either one. 
        --    # Test first for 'https' then 'http', as that makes more sense logically to do so.            
        set theBadURL to do shell script "awk 'BEGIN { print substr(\"" & theBadURL & "\", 9) }'"
        --    # Build the good URL from the bad URL.
        set theGoodURL to do shell script "awk -F 'https.*//' '{print $2}'<<<" & quoted form of theBadURL
        if theGoodURL is not equal to "" then
            set theGoodURL to "https://" & theGoodURL
        else
            set theGoodURL to do shell script "awk -F 'http.*//' '{print $2}'<<<" & quoted form of theBadURL
            if theGoodURL is not equal to "" then
                set theGoodURL to "http://" & theGoodURL
            end if
        end if
        return theGoodURL
    on error eStr number eNum
        display dialog eStr & " number " & eNum buttons {"OK"} default button 1 with icon caution
        return
    end try
end badURL

on run
    try
        tell application "Safari"
            activate
            set thisTabsURL to (get URL of current tab of window 1)
            --    # Check for bad URL and if found, build a good URL from it.
            tell current application
                if thisTabsURL contains "file:" then
                    set theGoodURL to my badURL()
                    tell application "Safari" to set the URL of the front document to theGoodURL
                end if
            end tell
        end tell
    on error eStr number eNum
        display dialog eStr & " number " & eNum buttons {"OK"} default button 1 with icon caution
        return
    end try
end run

মনে রাখবেন যে আমি ওএস এক্স 10.8.5 এবং ম্যাকোস 10.12 এর অধীনে এটি পরীক্ষা করেছি এবং এটি আমার পরীক্ষার শর্তে কাজ করেছে, তবে এটি প্রতিটি শর্তের অধীনে প্রতিবার সঠিকভাবে কাজ করতে পারে না এবং এজন্য কোডtry এবং on error স্টেটমেন্টগুলি কেন ব্যবহৃত হচ্ছে । আশা করছি এই ইচ্ছার ফাঁদ উপযুক্ত আউটপুট সঙ্গে কোনো ত্রুটি (গুলি) তারপর উন্নত কোড যে আমার পরীক্ষার সময় ঘটেনি কোনো ত্রুটি (গুলি) পরিচালনা করতে।

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