2010-03-03 13 views
6

के साथ संपादित करना मैं पृष्ठ लोड होने के बाद पूरे head अनुभाग को साफ़ करना चाहता हूं ... असल में, मेरा लक्ष्य head अनुभाग में आयोजित सभी जावास्क्रिप्ट कोड को हटाना होगा।<head> अनुभाग को जावास्क्रिप्ट

वहाँ किसी तरह इस तरह कुछ करने के लिए है:

document.head.innerHTML = ""; 

स्पष्टीकरण: मैं क्यूटी और वेबकिट का उपयोग करता है websits के स्क्रीनशॉट लेने के लिए एक अजगर स्क्रिप्ट का उपयोग कर रहा हूँ।
यह ज्यादातर sties पर काम करता है, लेकिन एक ऐसा है कि यह विफल रहता है। उस साइट पर जावास्क्रिप्ट कोड का एक गुच्छा है जो यह टाइमआउट पर चलता है। वेबकिट वेबपृष्ठ ऑब्जेक्ट मुझे पृष्ठ पर जावास्क्रिप्ट निष्पादित करने की अनुमति देता है। यदि जावास्क्रिप्ट को सभी कोड को निकालने का कोई तरीका है, तो मुख्य अनुभाग मैं परीक्षण उद्देश्यों के लिए यह कोशिश करने में सक्षम होना चाहता हूं कि यह मेरे स्क्रीनशॉट स्क्रिप्ट समस्या को हल करता है या नहीं।

+0

क्या आपने वास्तव में 'document.head.innerHTML = ""; '? क्या होता है? –

+0

हटाने की विधि का उपयोग करके सिर को हटाने का एक तरीका है और इसे फिर से जोड़ें जो खाली होगा – Sarfraz

+1

document.head.innerHTML = ""; जब मैंने कोशिश की तो कुछ भी नहीं किया। – benino

उत्तर

3

आप सिर से तत्वों को हटा सकते हैं, लेकिन इससे कोई फर्क नहीं पड़ता। स्क्रिप्ट पहले ही चल चुके हैं और तत्वों को हटाकर उन्हें या कुछ भी अनलोड नहीं किया जाएगा।

+2

ताकि यदि कोई जावास्क्रिप्ट फ़ंक्शन हेड सेक्शन में रहता है और हटा दिया जाता है और फिर टाइमआउट द्वारा फिर से कॉल किया जाता है, तो यह अभी भी चलाएगा? – benino

0

उपयोग करके देखें:

document.getElementsByTagName('head').innerHTML = ""; 

सिर स्पष्ट करने के लिए। document.head मौजूद नहीं है इसलिए यह काम नहीं कर सकता है।

लेकिन आप जावास्क्रिप्ट का उपयोग कर जावास्क्रिप्ट को अक्षम करने की कोशिश कर सकते हैं जैसे नोहा द्वारा सुझाए गए।

दिशानिर्देशों के लिए http://www.manticmoo.com/articles/jeff/programming/javascript/removing-javascript-with-javascript.php देखें। यह पागल लगता है लेकिन जाहिर है यह काम करता है।

+1

वाह। दिलचस्प। मुझे यह देखना होगा कि मैं इसका उपयोग कर सकता हूं या नहीं! धन्यवाद। – benino

+0

दस्तावेज नोट करने योग्य मूल्य। अब मौजूद है। – Halcyon991

0

जैसा कि नोहा ने कहा, हेड टैग से कोड को हटाने से कुछ भी पूरा नहीं होगा। आपको वास्तव में कोड को क्या करना है पूर्ववत करना होगा। उदाहरण के लिए, यदि यह टाइमआउट कोड सेट अप करने के लिए setTimeout() का उपयोग कर रहा है, तो आप इसे अक्षम करने के लिए clearTimeout() का उपयोग करने की आवश्यकता है।

+2

या 'setTimeout' को 'setTimeout = function() {}; द्वारा अपहृत करें –

2
document.getElementsByTagName("head")[0].innerHTML = ""; 

// IE 
var htmlEl = document.getElementsByTagName("html")[0]; 
htmlEl.removeChild(document.getElementsByTagName("head")[0]) 
var el = document.createElement("head"); 
htmlEl.appendChild(el); 

रोकने के लिए setTimeout से चल जावास्क्रिप्ट स्क्रिप्ट, आप clearTimeout का उपयोग करना चाहिए, लेकिन इस मामले के लिए आप एक हैंडलर होना चाहिए ... लेकिन आप, भाग्यशाली हैं अगर वे वैश्विक चर के रूप में परिभाषित किया जाता है।

0

$ ('आईडी आईडी') खाली(); बहुत अच्छी तरह से काम किया।

संबंधित मुद्दे