将JavaScript文件的内容作为警报或登录控制台输出

将JavaScript文件的内容作为警报或登录控制台输出,javascript,Javascript,可能重复: 这似乎是个奇怪的问题,但我一直在想。假设我有一个HTML文件引用了一个或多个JavaScript文件,这些文件是本地的,但可以是外部的。现在出于某种原因(我自己的好奇心),我希望像字符串一样输出其中一个文件的内容,并将其写入控制台,甚至alert内容。假设我有一个名为jsFile.JS的JS文件: // JavaScript Document var testString = "I am just an output... or am I", testNumber = 1,

可能重复:

这似乎是个奇怪的问题,但我一直在想。假设我有一个HTML文件引用了一个或多个JavaScript文件,这些文件是本地的,但可以是外部的。现在出于某种原因(我自己的好奇心),我希望像字符串一样输出其中一个文件的内容,并将其写入控制台,甚至
alert
内容。假设我有一个名为jsFile.JS的JS文件:

// JavaScript Document
var testString = "I am just an output... or am I",
    testNumber = 1,
    testArray = [],
    testObject = {};

// random functionality, etc... etc...
if(testNumber > 100){
    // do something...
}
在打开HTML页面时,我希望这样输出:

但是我不确定如何做到这一点,我是否可以在dom中找到
脚本
标记并使用其上的方法来输出其内容(见下文),或者我是否必须(以某种方式)读取文件,然后循环通过变量中收集的每行代码,然后通过
警报
控制台.log

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Hello World</title>
</head>
<script type="text/javascript" src="jsFile.js"></script>
<script type="text/javascript">

// find the JS node...
window.onload = function(){

    var theFile = document.getElementsByTagName("script")[0];

    // none of these will work as the code within the jsFile.js is not a DOM object...
    console.log(theFile.text); // returns a zero length string
    console.log(theFile.innerHTML); // returns a zero length string
    console.log(theFile.textContent); // returns a zero length string   

}

</script>
<body>
I am just a HTML file... no more, no less...
</body>
</html>

你好,世界
//找到JS节点。。。
window.onload=函数(){
var theFile=document.getElementsByTagName(“脚本”)[0];
//这些都不起作用,因为jsFile.js中的代码不是DOM对象。。。
console.log(theFile.text);//返回长度为零的字符串
console.log(theFile.innerHTML);//返回长度为零的字符串
console.log(theFile.textContent);//返回长度为零的字符串
}
我只是一个HTML文件。。。不多也不少。。。

上面是我的第一次尝试,但是这些方法都不起作用,因为脚本的内容不是DOM对象。我不需要特定于代码的答案,只需要概念、想法或正确方向的证明。如果我说不通,请这样说,我将改写我的问题。

您需要向该脚本的URL发出AJAX请求,并在任何需要的地方显示内容(只需获取
响应文本),它是服务器端资源,返回的内容将是您的javascript:)

虽然基本上已经回答了这个问题,但我被这个挑战触发了,我编写了一个小片段,将所有脚本资源转储到控制台,前提是它们位于同一域(源)。我已经在Chrome上测试过了

var f = function (src) {
   var origin = location.origin || (location.protocol+'//'+location.hostname);
   if (src.substr(0, origin.length) != origin) {
      return;
   }
   x = new XMLHttpRequest();
   x.open("GET", src.substr(origin.length), true);
   x.onreadystatechange = function () {
      if (x.readyState == 4 && x.status == 200) {
         console.log(x.responseText)
      }
   };
   x.send();
};
var s = document.getElementsByTagName('script');
for (var i = 0; i < s.length; ++i) {
   f(s[i].src);
}
var f=函数(src){
var origin=location.origin | |(location.protocol+'/'+location.hostname);
if(src.substr(0,原点长度)!=原点){
返回;
}
x=新的XMLHttpRequest();
x、 打开(“GET”,src.substr(origin.length),true);
x、 onreadystatechange=函数(){
如果(x.readyState==4&&x.status==200){
console.log(x.responseText)
}
};
x、 send();
};
var s=document.getElementsByTagName('script');
对于(变量i=0;i
请参见,问题在于javascript代码(该文件的内容)不会成为HTML的一部分:它与HTML基本相同。因此,没有简单的方法可以获得它(也就是说,不使用AJAX)“假装它是一个服务器端资源”,它是一个服务器端资源。@Adnan,是的,我是在你用ajax调用
php
jsp
asp
页面的上下文中说的。不是javascript或静态html文件;这个答案根本不正确:根据HTML4规范,用户代理必须将文件的内容传递给脚本引擎,这意味着让JavaScript可以使用,而他们根本不这样做。是什么让.txt成为服务器端资源,让css、图像或HTML成为客户端资源?如果txt文件可用作URL,为什么不能从客户端打印出其内容?