我想要做這樣的事情:腳本刪除本身
<body>
<script id="a" >
//Here i do a lot of things, then
document.body.removeChild(document.getElementById("a"));
</script>
</body>
而且它不工作!
我想要做這樣的事情:腳本刪除本身
<body>
<script id="a" >
//Here i do a lot of things, then
document.body.removeChild(document.getElementById("a"));
</script>
</body>
而且它不工作!
也許試圖從自己刪除腳本導致問題。也許這將工作...
<script id="a">
var stuffFinished = false;
$(document).ready(function(){
//do your stuff here
stuffFinished = true;
});
</script>
<script id="b">
$(document).ready(function(){
var timer = setInterval(function() {
if (stuffFinished) {
$("#a").remove();
clearTimeout(timer);
}
}, 1000);
});
</script>
我沒有測試這一點,只是一個想法...
你可以給我一個沒有jQuery的方法嗎? – user1342369 2012-04-20 09:47:40
我可以告訴你如何。使用body標籤中的onload事件來觸發兩個方法,例如
,然後代替將代碼包裝在jquery函數中,只需將它包裝在你自己的函數中即函數scriptA(){//你的代碼在這裏}。這有幫助嗎? – 2012-04-20 10:25:17哦,你將需要使定時器var全局 - 堅持它的功能decleration – 2012-04-20 10:26:03
我不確定這是否會起作用,具體取決於插入腳本的位置,瀏覽器可能會在執行代碼之前執行代碼,即使已完成創建DOM。 在執行代碼之前,最好使用像jQuery這樣的框架並等待文檔完成加載。如果你使用jQuery,它會這樣工作:
<script id="a">
$(document).ready(function(){
//do your stuff here
$("#a").remove();
});
</script>
定義「不工作」。你是否希望將腳本從視圖源中刪除? – 2012-04-20 07:28:36
我不認爲你可以這樣做。爲什麼你想要刪除劇本呢?通過查看瀏覽器源代碼,它將仍然存在,因爲它將被渲染。從理論上講,它只會從內存中刪除,但再次,不知道你是否可以做到這一點,特別是從它本身。 – 2012-04-20 07:37:11
如果您希望它從「查看頁面源」中消失:這是不可能的。但它會從DOM中移除。檢查螢火蟲或類似的工具,它適用於我。 – stewe 2012-04-20 07:53:13