如何复制页面源并使其工作

时间:2011-01-15 09:46:00

标签: javascript

这很有用:http://www.design215.com/toolbox/whitespace.php

但是我想在我的计算机本地主持,但是当我查看源代码并复制整个内容时它不起作用?

我是一个javascript noob,我只是想在DO NOT use this for Javascript. Use our Javascript Compressor.下面的框中放入notes的顶部

希望有人可以帮助我这样做:)

2 个答案:

答案 0 :(得分:0)

您不仅需要HTML源代码,还需要任何链接的JavaScript文件(以及它们链接到的文件等)。

但我认为仅复制整个网页是违法的,浏览器(出于某种原因)对本地运行的javascript有更严格的安全设置。 如果您需要离线执行此操作,您最好找到另一种工具来执行此操作。在此之前,只需为此页面添加书签。

答案 1 :(得分:0)

至于请求,我帮你把它撕掉了。应该在没有互联网连接的情除了压缩统计之外,我还撕掉了所有东西。你也需要它吗?我相信你必须使用它来进行一些简单的文本编辑。

将这段代码保存到名为compressor.html的文件或您喜欢的任何.html中,并使用浏览器运行。

免责声明:没有什么花哨的,纯粹是从你所陈述的内容中删除这些功能。并且不需要依赖项,只需要一个浏览器来运行此代码。

仅使用Chrome测试,因为我现在使用的是mbp。 ;)

<!DOCTYPE html>
<html>
<head>
    <style type="text/css" media="screen">
        textarea{width:600px;height:120px;}
    </style>
    <script type="text/javascript" charset="utf-8">

        /**
         * Script logic is ripped from
         * http://www.design215.com/toolbox/whitespace.php
         * 
         * Ripped by Lionel Chan
         * on 16 January 2011
         * for stackoverflow.com
         * http://stackoverflow.com/questions/4698907/how-to-copy-the-source-of-a-page-and-make-it-work
         */

        function trim(a){return a.replace(/^\s+|\s+$/g,"")}
        function right(a,pos){var z=a.length; return a.substring(z-pos,z)}

        function clearTxt() {
            var src = document.getElementById('source');
            src.value = '';
            src.focus();
        }

        function compress() {
            var src = document.getElementById('source');
            var dest = document.getElementById('destination');

            var txt = src.value;
            txt = txt.replace(/\r\n/g, "\n");
            txt = txt.replace(/\r/g, "\n");
            txt = txt.replace(/\n/g, "\r\n");
            txt = txt.replace(/\t/g, " ");

            var q = [];
            var p = txt.split(/\r\n/);
            for(var k = 0 ; k < p.length ; k++) {
                var tmp = p[k];
                tmp = tmp.replace(/(<!-)(-)[\s\S]+(-)(->)/ig,"");
                tmp = tmp.replace(/\s{2,}/g," ");
                tmp = trim(tmp);
                if (tmp) q.push(tmp);
            }

            var z = "";
            if (document.getElementById('remove-line').checked) {
                var x = 0;
                for (var k = 0 ; k < q.length ; k++) {
                    //line breaks every 1024 chars
                    if (x + q[k].length > 1024) {
                        z += "\r\n";
                        x = 0;
                    }
                    x += q[k].length + 1;
                    z += q[k];
                    if (right(z, 1) != ">") z += " ";
                }
            }else{
                z = q.join("\r\n");
            }

            z += "\r\n";

            dest.value = z;
        }
    </script>
</head>
<body>
    <div><textarea id="source"></textarea></div>
    <div>
        <input type="checkbox" id="remove-line" /><label for="remove-line">Remove line feeds</label><br />
        <input type="button" onclick="clearTxt()" value="Clear Box" />
        <input type="button" onclick="compress()" value="Compress" />
    </div>
    <div><textarea id="destination"></textarea></div>
</body>
</html>