एक बैच फ़ाइल से जावास्क्रिप्ट window.open कमांड चलाने में त्रुटि


1

मैं एक बैच फ़ाइल का उपयोग करके विंडोज 7 में कमांड लाइन से एक जावास्क्रिप्ट कमांड चलाने की कोशिश कर रहा हूं। बैच फ़ाइल को व्यवस्थापक के रूप में चलाया जाता है।

मैं एक लंबी दिनचर्या के हिस्से के रूप में एक इंटरनेट एक्सप्लोरर 8 विंडो खोलने की कोशिश कर रहा हूं। अगर मैं केवल जावास्क्रिप्ट का उपयोग किए बिना बैच फ़ाइल में IEXPLORE.EXE कहता हूं, तो इंटरनेट एक्सप्लोरर 8 ठीक खुलता है:

"C:\Program Files\Internet Explorer\IEXPLORE.EXE"

यदि मैं एक URL भी कहता हूं, तो निर्दिष्ट पृष्ठ खुलता है:

"C:\Program Files\Internet Explorer\IEXPLORE.EXE" http://www.google.com

हालाँकि अगर मैं इंटरनेट एक्सप्लोरर 8 विंडो के आकार और स्थान को नियंत्रित करने के लिए बैच फ़ाइल में जावास्क्रिप्ट का उपयोग करने का प्रयास करता हूं, तो इंटरनेट एक्सप्लोरर विंडो खुलनी शुरू हो जाती है, लेकिन इससे पहले कि यह त्रुटि संदेश के साथ रूटीन एबार्ट्स को पूरा करने में असमर्थ हो 'डाउनलोड करने में असमर्थ। अनिर्दिष्ट त्रुटि।':

"C:\Program Files\Internet Explorer\IEXPLORE.EXE" javascript:window.open("http://www.google.com","newwin","left=10,top=10,width=520,height=250");

Internet Explorer के विकल्पों में सक्रिय स्क्रिप्टिंग सक्षम है।

दोष DOCOBJ.DLL फ़ाइल के कारण नहीं दिखता है जो Microsoft Office के पुराने संस्करणों के साथ आता है। हालाँकि मैंने अपने सिस्टम पर Office स्थापित किया था, जो Internet Explorer 8 चला रहा है, इसलिए DOCOBJ.dll का एक पुराना संस्करण पंजीकृत किया गया था, मैंने तब से इसे अपंजीकृत कर लिया है और IEPROXY.DLL को फिर से पंजीकृत किया है, लेकिन window.open () के साथ दोष जारी है -

"C:\Program Files (x86)\Internet Explorer\ieproxy.dll"

क्या कोई सुझाव दे सकता है कि मैं क्या देख रहा हूँ?


मुझे नहीं लगता कि इस तरह से ब्राउज़र को जावास्क्रिप्ट पास करना संभव है। आप शायद इसे खोलने के लिए एक पेज बना सकते हैं जो इस विंडो को बंद कर सकता है और फिर खुद को बंद कर सकता है। शायद पूरे स्ट्रिंग को आप एक एकल qoutes में पास करना चाहते हैं?
Melikoth

इस उपयोगी सुझाव मेलिकोथ के लिए धन्यवाद, जो मेरे लिए नहीं हुआ है। मैं इसे करने की कोशिश करूँगा, क्योंकि यह एक व्यवहार्य कार्य के चारों ओर लगता है। मैं अपने परिणामों के साथ वापस यहाँ पोस्ट करूँगा।
Ed999

आपके सुझाव ने काम किया।
Ed999

जवाबों:


1

धन्यवाद, मेलिकोथ। आपने मुझे सही रास्ते पर ला दिया। बहुत सारे परीक्षण और त्रुटि ने विंडोज 7 में, इस समाधान का उत्पादन किया है।

यह कैरेट एस्केपिंग का उपयोग करता है।

# & Lt; के सभी उदाहरण बदलें

OPEN.BAT की सामग्री -

 

    echo ^#html^> >> %temp%\temp.htm

    echo ^#head^> >> %temp%\temp.htm

    echo ^#title^>^#/title^> >> %temp%\temp.htm

    echo ^#script language='JavaScript' type='text/javascript'^>function
    run(){window.open('','_self');var t = openWin(newWin())}function
    newWin(){window.open('http://www.bbc.co.uk/iplayer/console/b007jqsz','','left=10,top=10,width=400,height=600,toolbar=0,location=0,directories=0,status=0,scrollbars=0');window.close()}^#/script^> >> temp%\temp.htm

    echo ^#/head^> >> %temp%\temp.htm

    echo ^#body onload='run()'^> ^#/body^> >> %temp%\temp.htm

    echo ^#/html^> >> %temp%\temp.htm

    "C:\Program Files\Internet Explorer\IEXPLORE.EXE" %temp%\temp.htm

 

खुशी है कि आप एक व्यावहारिक समाधान प्राप्त करने में सक्षम थे!
Melikoth

0

javascript: एक मानक URL योजना नहीं है (जैसे http, https, ftp आदि।)। बल्कि, जब भी कोई ब्राउज़र एक क्लिक ऑपरेशन के दौरान इसका सामना करता है, तो यह निम्न कथन को जावास्क्रिप्ट स्टेटमेंट के रूप में मानता है और इसे निष्पादित करता है। इसलिए आप बाहर से सक्रिय नहीं कर सकते।


वास्तव में आप एक बैच फ़ाइल से जावास्क्रिप्ट सक्रिय कर सकते हैं। मैं इसे विंडोज 98 में हर समय करता था। मैं वास्तव में इस तथ्य को गलत ठहरा रहा था कि मेरे मानक विंडोज 98 बैच फ़ाइल समाधान विंडोज 7 में काम नहीं कर रहा है, इस एक उदाहरण में, भले ही कई अन्य कमांड लाइन ट्रिक्स हैं जो मैंने किए हैं Win98 के बाद से अभी भी ठीक चल रहा है।
Ed999

हां, मैंने 2002/2003 के आसपास वेब डेटिंग पर लेख भी देखे हैं जो इस ट्रिक का वर्णन करते हैं। तब से चीजें स्पष्ट रूप से बदल गई हैं।
Todd Owen

0

मेरा यहाँ है संशोधित .BAT बैच फ़ाइल OPEN.BAT जब तक चाइल्ड विंडो पूरी तरह से नहीं खुल जाती, तब तक ओपनर विंडो को बंद करने में देरी के लिए एक टाइमिंग फंक्शन जोड़ा जाता है।

# & Lt; के सभी उदाहरण बदलें

इको ^ # html ^ & gt; & Gt; & gt; % अस्थायी% \ temp.htm

इको ^ # हेड ^ & gt; & Gt; & gt; % अस्थायी% \ temp.htm

echo ^ # शीर्षक ^ & gt; ^ # / शीर्षक ^ & gt; & Gt; & gt; % अस्थायी% \ temp.htm

गूंज ^ # स्क्रिप्ट भाषा = 'जावास्क्रिप्ट' प्रकार = 'पाठ / जावास्क्रिप्ट' ^ & gt; फ़ंक्शन   रन () {window.open ('', '_ self'); var t = openWin (newWin ()) फ़ंक्शन   newWin () {window.open ( ' http://www.bbc.co.uk ',' ',' चौड़ाई = 382, ​​ऊंचाई = 666, बाईं = 10, शीर्ष = 10, उपकरण पट्टी = 0, स्थान = 0, स्थिति = 0, स्क्रॉलबार = 0 '); setTimeout (' window.close () ', 5000)} ^ # / लिपि ^ & gt; & Gt; & gt; % अस्थायी% \ temp.htm

इको ^ # / हेड ^ & gt; & Gt; & gt; % अस्थायी% \ temp.htm

इको ^ # बॉडी ऑनलोड = "रन ()" ^ & gt; ^ # / शरीर ^ & gt; & Gt; & gt; % अस्थायी% \ temp.htm

इको ^ # / html ^ & gt; & Gt; & gt; % अस्थायी% \ temp.htm

"C: \ Program Files (x86) \ Internet Explorer \ IEXPLORE.EXE"% temp% \ temp.htm

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.