Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用evaluateJavaScript(..)调用javascript函数以读取应用程序包中的文本文件_Javascript_Ios_Xmlhttprequest_Text Files_Wkwebview - Fatal编程技术网

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

使用evaluateJavaScript(..)调用javascript函数以读取应用程序包中的文本文件,javascript,ios,xmlhttprequest,text-files,wkwebview,Javascript,Ios,Xmlhttprequest,Text Files,Wkwebview,第一部分工作正常,这意味着WKWebview对象能够调用java脚本函数。我想问题在于javascript代码 被调用的javascript函数应该只是从应用程序包(fileName=“data.txt”)中的文本文件中读取。看起来是这样的: function readTextFile(fileName) { var rawFile = new XMLHttpRequest(); rawFile.onreadystatechange = function() {

第一部分工作正常,这意味着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,我检查过了。我已经用一些假装不存在的文件替换了文件名,并且rawfile状态仍然达到4。因此,现在我甚至不确定是否找到了该文件

  • 有没有办法确定是否找到了该文件
  • 如果它被发现了,我怎样才能读出它
  • 我根本不是一个有经验的java脚本开发人员。所以这可能是一些明显的问题。我在w3schools.com的帮助下编写的javascript函数


    谢谢

    我认为您的代码存在一些格式问题,并且没有添加事件侦听器。试试下面的方法。MDN上还有更好的文档

    函数readTextFile(){ document.getElementById(“demo”).innerHTML=this.responseText; } 函数getTextFile(文件){ var req=新的XMLHttpRequest(); 请求addEventListener(“加载”,readTextFile) 请求打开(“获取”,文件,真) 请求发送(); ) getTextFile('example.txt')
    
    
    由于请求是异步的,因此添加一个侦听器是有意义的,因为我不知道如何实现它。函数readTextfile()还不能正常工作未调用。可能缺少其他内容…如果文本文件放在应用程序包中,则不会调用函数readTextFile。但是,如果文本文件位于远程Web服务器上,则会调用它。我最终发现问题在于,跨源请求仅支持HTTP。这似乎是由于安全原因城市限制…我将尝试寻找一个工作周围。。。