我想完成类似的事情:
<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完成它?
提前致谢。
答案 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!
}