javascript - 使用evaluateJavaScript(..)调用javascript函数,以读取应用程序包中的文本文件

标签 javascript ios xmlhttprequest text-files wkwebview

第一部分工作正常,这意味着 WKWebview 对象能够调用 java 脚本函数。我认为问题在于 javascript 代码。

调用的 javascript 函数应该简单地从应用程序包中的文本文件中读取 (fileName = "data.txt")。它看起来像这样:

function readTextFile(fileName)
{
     var rawFile = new XMLHttpRequest();
     rawFile.onreadystatechange = function()
     { 
         if(rawFile.status == 4)
         { 
             document.getElementById("demo").innerHTML = this.responseText;
         }
     }

    rawFile.open("GET",file,true)
    rawFile.send()  

 }

输出总是空的。现在我确定 rawFile 状态达到 4,我检查过了。我已经用一些假装不存在的文件替换了文件名,原始文件状态仍然达到 4。所以现在我什至不确定是否已找到该文件。

  1. 有没有办法确定文件是否找到?
  2. 如果找到了,我该如何读出它?

我根本不是经验丰富的 Java 脚本开发人员。所以这可能是一些明显的问题。我在 w3schools.com 的帮助下编写的 javascript 函数。

谢谢。

最佳答案

我认为您的代码存在一些格式问题,并且您没有添加事件监听器。试试下面的。 MDN 上也有更好的文档 https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest

function readTextFile() {
  document.getElementById("demo").innerHTML = this.responseText;
}
function getTextFile(file) {
  var req = new XMLHttpRequest();
  req.addEventListener("load", readTextFile)
  req.open("GET", file, true)
  req.send();
)

getTextFile('example.txt')
<div id="demo">
</div>

关于javascript - 使用evaluateJavaScript(..)调用javascript函数,以读取应用程序包中的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46493133/

相关文章:

javascript - 单击任意页面时如何关闭侧边栏导航?

javascript - Angular 2 - 如何使用新的 Angular 2.0.0-rc.1 路由器

iphone - 如何在 UILabel 中为递增数字设置动画

ios - Swift CoreStore 订购列表监控问题

javascript - 将 API key 设置为 XMLHttpRequest 的 header

jquery - 使用jquery发送post方法

javascript - 如何让文字在几秒钟后消失

javascript - Firebase 分析未显示 Web 应用程序的数据

mysql - iOS 应用程序开发 - 数据库

javascript - 如何比较xmlhttp.responsetext?