Javascript 如何计算网页中的字符数?

Javascript 如何计算网页中的字符数?,javascript,html,get,xmlhttprequest,alert,Javascript,Html,Get,Xmlhttprequest,Alert,我正在尝试创建一个网页,当您单击“尝试”按钮时,它会打开另一个网页,然后计算该网页中的字符数。现在,这个网页成功地打开了我要求它打开的网页,但是网页的字符长度是“未定义的”。我不想去掉XMLHttpRequest或它下面的一行代码,因为我计划扩展这个网页,使它能够在以后通过特定的关键字解析网页。代码如下: <!DOCTYPE html> <html> <body> <p>Click the button to open a new browser

我正在尝试创建一个网页,当您单击“尝试”按钮时,它会打开另一个网页,然后计算该网页中的字符数。现在,这个网页成功地打开了我要求它打开的网页,但是网页的字符长度是“未定义的”。我不想去掉XMLHttpRequest或它下面的一行代码,因为我计划扩展这个网页,使它能够在以后通过特定的关键字解析网页。代码如下:

<!DOCTYPE html>
<html>
<body>

<p>Click the button to open a new browser window.</p>

<button onclick="myFunction()">Try it</button>

<script>
function myFunction() {
    window.open("https://www.gutenberg.org/files/1065/1065-h/1065-h.htm");
    var req = new XMLHttpRequest();
    req.open('GET', 'https://www.gutenberg.org/files/1065/1065-h/1065-h.htm', false);
    alert(req.length);
}
</script>

</body>
</html>

单击该按钮可打开一个新的浏览器窗口

试试看 函数myFunction(){ 窗口打开(“https://www.gutenberg.org/files/1065/1065-h/1065-h.htm"); var req=新的XMLHttpRequest(); 请求打开('GET','https://www.gutenberg.org/files/1065/1065-h/1065-h.htm",假),; 警报(请求长度); }

任何人能为我提供的任何帮助都将不胜感激。祝您度过愉快的一天。

首先,您需要在远程服务器中使用一个标志头,允许您的url生成XMLHttpRequests。 访问控制允许来源:*或访问控制允许来源:yoururl.com

另一个问题是https版本重定向到http版本,如果从https站点执行此操作,则可能会出现问题,因为客户端浏览器的“混合内容”行为。此外,同步XMLHttpRequest(false标志)已被弃用或即将弃用

如果您在同一个域(http gutenberg)中执行此操作,它就会工作。您应该尝试在http服务器中执行此操作,并查看控制台,希望没有访问控制允许源限制

var req = new XMLHttpRequest();
req.open('GET', 'http://www.gutenberg.org/files/1065/1065-h/1065-h.htm', true);
req.onreadystatechange = function (aEvt) {
  if (req.readyState == 4) {
     if(req.status == 200)
      console.log(req.responseText);
     else
      console.log("Error loading page\n");
  }
};
req.send(null)

可能是因为您有跨源问题吗?:我粘贴了您添加的所有代码,但现在甚至没有出现弹出窗口。我把弹出窗口的代码行放在req.send(null)代码行的正下方,现在它不工作了。关于如何让线路警报(要求长度)工作,您有什么建议吗?感谢您的帮助。在浏览器中按F12并读取错误,几乎可以肯定您有上述错误之一。除非您要求gutenberg添加您的url,否则访问控制允许来源错误没有解决方案。为了计算字符数,您需要一些服务器逻辑,比如curl而不是ajax。非常感谢你。