2012-05-13 12 views
15

के बजाय कस्टम एचटीएमएल के साथ एक नया टैब खोलें मैं एक Greasemonkey स्क्रिप्ट बना रहा हूं और एक नया टैब खोलना चाहता हूं जो एक यूआरएल प्रदर्शित नहीं करेगा लेकिन कुछ एचटीएमएल जो स्क्रिप्ट का हिस्सा है। तो मूल रूप से मैं ऐसा कुछ करना चाहता हूं (जो स्पष्ट रूप से काम नहीं कर रहा है):यूआरएल

window.open('<html><head></head><body></body></html>'); 
or 
GM_openInTab('<html><head></head><body></body></html>'); 

किसी भी संकेत का स्वागत है!

+0

मुझे लगता है कि window.open ('nonexistingURL') ऐसा करना संभव होना चाहिए। ब्राउज़र टैब के साथ एक नया टैब खुल जाएगा "पृष्ठ नहीं मिला"। गैर मौजूदा यूआरएल पर जीएम स्क्रिप्ट चलाने के लिए संभव होना चाहिए। मैं कोशिश करूँगा ... –

उत्तर

35

आप ऐसा कर सकते हैं:

var newWindow = window.open();

और उसके बाद करना

newWindow.document.write("ohai");

+0

धन्यवाद, आपको नहीं पता था कि आप एक नई विंडो –

+0

पर लिख सकते हैं मेरे लिए काम नहीं करता है, नया टैब खोला गया है, लेकिन यह खाली है: पता पंक्ति में खाली :-( – Blackhex

+0

मुझे लगता है यह अंतर्निहित (असुरक्षित) ब्राउज़र विंडो पर 'window.open' की कॉल में अनुवाद करता है, जो आपके द्वारा देखे जा रहे पृष्ठ पर स्क्रिप्ट के लिए आपकी नई खुली विंडो को छोड़ देगा। (यही कारण है कि' GM_openInTab' फ़ंक्शन ' सब, इसे रोकने के लिए) – Doin

6

अन्य जवाब आप Error: Permission denied to access property "document" देता है, this question कैसे एक ही मूल नीति की समस्याओं को संभालने के लिए के बारे में देखते हैं, या this one

या, त्वरित और गंदी, एक डेटा यूआरआई का उपयोग करें:

var html = '<html><head></head><body>ohai</body></html>'; 
var uri = "data:text/html," + encodeURIComponent(html); 
var newWindow = window.open(uri); 
+1

शायद ही कभी आवश्यक है, और ज्यादातर स्थितियों में समस्या निवारण के बेहतर तरीके हैं" अनुमति दस्तावेज तक पहुंचने से इनकार कर दिया गया टी "त्रुटियां: http://stackoverflow.com/questions/7995223/, http://stackoverflow.com/questions/22481340/, आदि – paulsm4

+1

मैंने आपके उत्तरों में आपके सही सुझाव संपादित किए हैं, क्योंकि शीर्ष उत्तर इस स्थिति को बनाता है कुछ, और यह एक टिप्पणी के लिए बहुत अधिक है। – Noumenon