【问题标题】:Convert Html to document.write javascript将 Html 转换为 document.write javascript
【发布时间】:2017-06-26 21:04:33
【问题描述】:

我看到一个网页,当我尝试查看源代码时,我只看到一个 JavaScript 语句。我搜索并无法弄清楚他们是如何做到的。你可以做,看看自己。

网页是:Weird Page

当我查看源代码时,我只看到类似下面的内容,看起来也像是评论:

<script type='text/javascript' language='Javascript'>
<!--document.write(unescape('%3C%2........................
................

他们是怎么做到的?我如何更改我的网页,以便当有人查看源代码时它看起来像这样?

【问题讨论】:

  • 你的问题到底是什么?
  • 他们是怎么做到的?如何更改我的网页,以便当有人查看源代码时它看起来像这样?

标签: javascript html


【解决方案1】:

This article 可能有助于澄清那里发生的事情。

基本上,这家公司使用标准转义字符对整个页面进行编码。如果您将unencode(...) 中的位一直复制到倒数第二个括号,然后将其粘贴到浏览器控制台中,您将看到实际的 HTML 内容。

如果您查看我链接的页面的源代码,您会看到将普通文本转换为所有转义字符的函数:

// CONVERTS *ALL* CHARACTERS INTO ESCAPED VERSIONS.
function escapeTxt(os){
    var ns='';
    var t;
    var chr='';
    var cc='';
    var tn='';
    for(i=0;i<256;i++){
        tn=i.toString(16);
        if(tn.length<2)tn="0"+tn;
        cc+=tn;
        chr+=unescape('%'+tn);
    }
    cc=cc.toUpperCase();
    os.replace(String.fromCharCode(13)+'',"%13");
    for(q=0;q<os.length;q++){
        t=os.substr(q,1);
        for(i=0;i<chr.length;i++){
            if(t==chr.substr(i,1)){
                t=t.replace(chr.substr(i,1),"%"+cc.substr(i*2,2));
                i=chr.length;
            }
        }
    ns+=t;
    }
    return ns;
}

【讨论】:

    【解决方案2】:

    正在发生的事情与听起来差不多。服务器提供单个 &lt;script&gt; 元素,其中包含一个 HTML 注释,以使不支持 JS 的浏览器更容易(在此处阅读更多:Why does Javascript ignore single line HTML Comments?),并在注释中将未转义的版本写入文档转义发送的字符串。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-11
      • 1970-01-01
      • 2011-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-13
      • 2020-09-04
      相关资源
      最近更新 更多