javascript - वेबपेज से क्रोम:// यूआरएल लिंक करें




google-chrome google-chrome-extension (2)

अद्यतन करें

chrome://about/ chrome://settings लिए सीधे लिंक है chrome://settings और अन्य, तो यह किया जा सकता है।

मैं किसी वेबपेज में chrome:// यूआरएल को कैसे लिंक / रीडायरेक्ट कर सकता हूं? उदाहरण के लिए, chrome://settings जब किसी chrome:// यूआरएल पर एक लिंक पर क्लिक करने का प्रयास करते हैं,

<a href="chrome://settings">link</a>

कंसोल में मुझे एक त्रुटि मिलती है:

Not allowed to load local resource: chrome://settings/

इस उत्तर के अनुसार, यह संभव है:

एक्सटेंशन विकल्प पृष्ठ से क्रोम: // क्रोम / एक्सटेंशन पर लिंक करें

मैंने इस स्क्रिप्ट की कोशिश की है:

<a href="#" id="test">test</a>
<script>
document.addEventListener('DOMContentLoaded', function () {
    document.getElementById('test').addEventListener('click', function () {
        chrome.tabs.update({
            url: 'chrome://chrome/extensions'
        });
    });
});
</script>

और यह भी:

<a href="#" onclick="chrome.tabs.create({url:'chrome://settings/clearBrowserData'});">click me</a>

न तो काम करता है उन लोगों के अतिरिक्त, मैंने कोशिश की है:

  • <a href="chrome://newtab"> का उपयोग करके इसे लिंक करना
  • window.location का प्रयोग करके उपयोगकर्ता को रीडायरेक्ट करें।

हालांकि, मेरा मानना ​​है कि एक जावास्क्रिप्ट समाधान हो सकता है जब उपयोगकर्ता एक लिंक दबाता है, तो क्या यह URL को chrome://settings परिवर्तित करना संभव है? उपयोगकर्ता को इसके बाद एन्टर करना होगा, लेकिन ऐसा लगता है कि मुझे सर्वश्रेष्ठ मिलेगा।


नहीं, यह एक वेबपेज से ऐसा करने का कोई रास्ता नहीं है

chrome:// एक विशेषाधिकार प्राप्त मूल है, और इसे खोलने का कोई भी प्रयास रीडायरेक्ट के about:blank

क्रोम हमले की सतह को कम करने के लिए करता है: भले ही उन यूआरएल खोलना हानिरहित होना चाहिए, यह बेहतर है कि वेबसाइटों और बाहरी कार्यक्रमों को भी कोशिश करने की अनुमति न दें।

इसके अलावा, यह हानिरहित नहीं है, जैसे कि chrome://crash , chrome://hang जैसे डीबग यूआरएल (सावधान, वे वास्तव में आपकी अपेक्षा करते हैं)।

जाहिर है, आप chrome.tabs उपयोग नहीं कर सकते क्योंकि यह एक एक्सटेंशन एपीआई है जो वेबसाइटों के सामने नहीं है हालांकि, विशेषाधिकार प्राप्त मूल खोलने में सक्षम है।


नीचे मेरे लिए काम करता है;

manifest.json

 {
  "manifest_version": 2,

  "name": "Redirection Sample",
  "description": "Test Redirection",
  "version": "1.0",

  "browser_action": {
    "default_icon": "icon.png",
    "default_popup": "popup.html"
  },
  "permissions": [
    "activeTab",
    "https://ajax.googleapis.com/"
  ]
}

popup.html

<!doctype html>
<html>
  <head>
    <title>Redirection Popup</title>
    <script src="popup.js"></script>
  </head>
  <body>
  <a href="#" id="test">test</a>
  </body>
</html>

popup.js

  document.addEventListener('DOMContentLoaded', function() {
        document.getElementById('test').addEventListener('click', function() {
            chrome.tabs.update({ url: 'chrome://chrome/extensions' });
        });
    });

icon.png

एक कस्टमाइज़्ड एक जोड़ें या इस लिंक से एक नमूना डाउनलोड करें

इन सभी 4 को एक निर्देशिका में शामिल करें और लोड को क्रोम पर एक्सटेंशन खोलें। यह काम करना चाहिए!





google-chrome-devtools