यह मेरे परीक्षणों से लगता है कि जावास्क्रिप्ट पर किसी भी प्रभाव के बिना डीओएम से एक स्क्रिप्ट टैग हटाया जा सकता है।
यह परीक्षण स्क्रिप्ट डीओएम नोड्स निष्पादन के माध्यम से भाग मार्ग को नष्ट कर देता है। यहां तक कि इसका स्क्रिप्ट पर कोई प्रभाव नहीं पड़ता है, परिवर्तनीय count
को 1
के बाद मान दिया गया है कि स्क्रिप्ट टैग को DOM से हटा दिया गया है।क्या एक HTML स्क्रिप्ट टैग को हटाने से जावास्क्रिप्ट पर कोई प्रभाव पड़ता है?
<!DOCTYPE html>
<html lang="en">
<head>
<title> Test </title>
<script id="jQueryScriptTag" src="https://code.jquery.com/jquery-1.11.2.min.js"></script>
</head>
<body>
<button id="testBtn">Click to test</button>
<div id="output"></div>
<script id="testCodeScriptTag">
var count;
$("#jQueryScriptTag").remove();
$("#testCodeScriptTag").remove();
$("#output").append(
"<p>jQueryScriptTag is " + document.getElementById("jQueryScriptTag") + "</p>" +
"<p>testCodeScriptTag is " + document.getElementById("testCodeScriptTag") + "</p>" +
"<p>count is " + count + "</p>"
);
count = 1;
$("#testBtn").click(function(){
$("#output").append(
"<p>count is " + (count++) + "</p>"
);
});
</script>
</body>
</html>
उपयोग केस मेजबान साइट से इंजेक्शन वाले तृतीय-पक्ष स्क्रिप्ट तत्वों को सुरक्षित रूप से हटा रहा है।
जब जावास्क्रिप्ट पार्स किया गया है, यह वैश्विक क्षेत्र (खिड़की वस्तु) को जोड़ा गया है। तो तत्व सिर्फ एक पाठ कंटेनर है। – Mouser
एक बार जावास्क्रिप्ट निष्पादित हो जाने पर, यह स्क्रिप्ट को हटाने के लिए उतना आसान नहीं है जितना इसे निष्पादित करने के लिए – adeneo