javascript 文本文件下载无法在 iPhone 上运行

javascript text file download not working on iPhone

我正在尝试下载一个文件,其中包含通过其他方式在页面上捕获的信息。在此示例中,这些方法已替换为 var listContacts = 'Here is some text to download in a txt'; 使代码更简单。它目前适用于 windows 笔记本电脑和 android phone.

这需要从本地存储在 phone 上的 HTML 文件脱机工作,无法访问服务器,因为这就是它的使用方式。

我们测试的 iPhone 是 运行 iOS 15,因此主导搜索结果的 iOS <13 下载错误不应该适用。 Javascript 在 Safari 中启用。它在 Chrome 中也不起作用(它在笔记本电脑和 Android 中起作用)。

我怎样才能让它在 iPhone 上运行?

function download(text) {

  var pom = document.createElement('a');
  pom.setAttribute('href', 'data:text/plain;charset=utf-8,' + 

encodeURIComponent(text));
  pom.setAttribute('download', 'Contacts.txt');

  pom.style.display = 'none';
  document.body.appendChild(pom);

  pom.click();

  document.body.removeChild(pom);

}

var listContacts = 'Here is some text to download in a txt';
<button onclick="download(listContacts)">Download</button>

也许试试这个(抱歉,在 Chrome iOS 中也不起作用,但在我的 Safari 中可以):

https://jsfiddle.net/mplungjan/xu9ra6dL/

测试link:Click

(function() {
  var textFile = null,
    makeTextFile = function(text) {
      var data = new Blob([text], {
        type: 'text/plain'
      });

      // If we are replacing a previously generated file we need to
      // manually revoke the object URL to avoid memory leaks.
      if (textFile !== null) {
        window.URL.revokeObjectURL(textFile);
      }

      textFile = window.URL.createObjectURL(data);

      return textFile;
    };


  document.getElementById('textbox').addEventListener('input', function() {
    var link = document.getElementById('downloadlink');
    link.href = makeTextFile(textbox.value);
    link.style.display = 'block';
  }, false);
})();
<textarea id="textbox">Type something here</textarea>
<a download="info.txt" id="downloadlink" style="display: none">Download</a>

在这个问题上花了整整 3 天时间,我现在知道由于沙盒和安全性,Safari 不允许您运行 本地存储html 文件。因此,如果不越狱我老板的昂贵工作 iPhone,我的问题就无法解决,我不打算这样做。

javascript 如果托管在 Internet 上,则工作得很好。它只是在本地不起作用。