JavaScript - 删除标记后的所有内容

时间:2010-03-25 15:55:30

标签: javascript

任何人都可以告诉我如何编写javascript代码,删除html标记后的所有内容。

我有以下文件:

<html>
<head>
<script>
// my script
</script>
</head>
<body>
Some text
</body>
</html>
<script>
</script>

渲染输出不得包含最后一个脚本(或任何其他)标记。

4 个答案:

答案 0 :(得分:3)

问题在于,在HTML之外,没有任何东西。您的结束</html>会被移动以解决格式错误的HTML问题。以下是firebug显示您的示例的方式。

In firebug

这意味着从javascript开始,无法知道哪个标记位于html之后。

答案 1 :(得分:3)

此代码等待页面加载,然后在</html>使用firebug尝试后删除所有标记,您将看到。您需要在最后一个标记后的<div id="last"></div>示例中创建一个占位符,然后删除剩余的标记。

<html>
    <head>
        <script type="text/javascript">
        window.onload=function()
        {
        var body=document.getElementsByTagName('body')[0];
        var found=false;
        var cur=0;
        for(var i=0; i<body.childNodes.length; i++)
        {
            if(body.childNodes[i].id=='last')
            {
                cur=i;
                found=true;
            }
            else if(found && i>cur+1)
            {
                body.removeChild(body.childNodes[i]);
            }
        }
        }
    </script>
    </head>
    <body>
       Some text
       <div id="last">

       </div>
    </body>
</html>
<p>
Im not gonna show
</p>
<input/>
<script>
</script>
<b>
</b>

别忘了滚动!请享用!

奇怪的是,这里的代码格式化无法正常运行。这可能是我的错。

修改将我的变量重命名为body

答案 2 :(得分:1)

    document.close();
    document.open();
    document.write("<html></html>");

答案 3 :(得分:0)

跟踪器通常在网站服务器转移到客户端时添加。
他们的代码如下:

&lt; / html&gt; &lt; script&gt;(功能跟踪器(){In Here})&lt; / script&gt;

浏览器将其更改为:

&lt; script&gt;(功能跟踪器(){In Here})&lt; / script&gt;
&lt; / body&gt;
&lt; / html&gt;


所以如果你只是把&lt;! - 放在&lt; / html&gt;之后所以它看起来像这样,如下所示添加了跟踪器

&lt; / html&gt; &lt;! - &lt; script&gt;(功能跟踪器(){在这里})&lt; / script&gt;

浏览器会通过添加结束标记将其全部更改为注释:

&lt; / html&gt; < b>&lt;! - &lt; script&gt;功能跟踪器(){In Here}&lt; / script&gt; - &gt;

跟踪器脚本只是变成一个注释并且停留在html之外它将无法运行!
这就是为什么有些代码可以在网站的最后一个标签之后!

为什么阻止它?如果他们想要,1个跟踪器可以带来数百个!所有在客户端的互联网连接!您的代码被指责为第三方操作!
如果您想使用Javascript删除代码,请为div添加一个开始标记并为其添加ID,同时添加开头注释标记,如下所示:

&lt; / html&gt;&lt; div id ='deleteThis'&gt;&lt;! - &lt; script&gt; function tracker(){In Here}&lt; / script&gt ;

浏览器通过关闭注释和div标签来更改它:

&lt; div id ='deleteThis'&gt;
&lt;! - &lt; script&gt;(功能跟踪器(){In Here})&lt; / script&gt; - &gt; < / b>
&LT; / DIV&GT;
&LT; / BODY&GT;
&LT; / HTML&GT;

Tracker-Script不应该运行但仍然添加你的脚本代码:

功能deleteTracker(){document.getElementByID('deleteThis')。innerHTML =“” ;}

尽快运行,所以你应该添加到body标签! &lt; body onload ='deleteTracker()'&gt;
div中的所有内容都将被删除!