显示Javascript代码的来源

时间:2010-12-02 02:17:26

标签: javascript html

我想完成类似的事情:

<html>
  <head>
    <script id="ViewSource" src="someJSfile.js"/>
    <script language="javascript">
      function View() {
        var el=document.getElementById("ViewSource"); //works
        var ta=document.getElementById("ta");         //works
        ta.value=el.innerHTML;                        //doesn't work
      }
    </script>
  </head>
  <body>
    <textarea id="ta"/>
    <a href="javascript:View();">View Javascript Source Code</a>
  </body>
</html>
// (please pardon any typos/errors, the above is just to illustrate what I mean)

当然“innerHTML”不适用于脚本标记。我可以访问哪些属性/属性来查看源代码?

我意识到只需单击浏览器中的查看源即可轻松完成此操作。我是否真的希望用javascript完成它?

提前致谢。

3 个答案:

答案 0 :(得分:3)

为什么不点火AJAX并下载“someJSFile.js”?下载后,您可以在JS变量中访问它。

如果您使用的是jQuery,可以使用$.get轻松完成:http://api.jquery.com/jQuery.get/

编辑:理论上它甚至不应该重新下载文件,因为它在浏览器中缓存(取决于您的服务器设置和浏览器设置)。

  • 基督教

答案 1 :(得分:0)

如果你设置ta.innerHTML = el.innerHTML,它至少有机会工作。


<a href="http://www.google.com">bleah
<script id="thescript" type="text/javascript">
var links = document.getElementsByTagName('a');
for (var i = 0; i < links.length; i++) {
 if (links[i].href == "http://www.google.com/") links[i].href = "http://www.blather.blorg/"
}
</script>
<br clear="all" />
<textarea id="view">
</textarea>
<script type="text/javascript">
document.getElementById("view").innerHTML =
 document.getElementById("thescript").innerHTML;
</script>

以上似乎有效,除了我需要扩大textarea的大小以查看所有内容。

答案 2 :(得分:0)

试试这个:

  function View() {
    var el=document.getElementById("ViewSource"); //works
    var ta=document.getElementById("ta");         //works
    ta.value=el.text;                             //works!
  }