显示JavaScript代码
问题描述:
来源我想完成这样的:显示JavaScript代码
<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”上script标签不起作用。我可以访问哪些属性/属性来查看源代码?
我意识到,只需在浏览器中单击查看源,就可以轻松完成此操作。我疯了,希望它可以用JavaScript来完成?
在此先感谢。
答
如果设置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的大小来查看所有它。
答
试试这个:
function View() {
var el=document.getElementById("ViewSource"); //works
var ta=document.getElementById("ta"); //works
ta.value=el.text; //works!
}
答
你为什么不只是触发一个AJAX调用并下载 “someJSFile.js”?一旦你下载了它,你就可以在JS变量中访问它。
如果您正在使用jQuery这可以很容易地使用$.get
来完成:http://api.jquery.com/jQuery.get/
编辑:从理论上讲,甚至不应该,因为它是在浏览器缓存中重新下载文件(取决于您的服务器设置和浏览器设置)。
- 基督教
不,不会。这是'
正如SLaks提到的,这种技术只适用于内联脚本,而不适用于远程脚本。 – 2010-12-02 02:38:00