我正在編寫Safari應用程序擴展。在我的擴展文件夾中,我有一個我想閱讀的HTML文件,並使用Javascript附加到網頁。我無法弄清楚如何在文件中讀取。我願意使用Javascript或Swift代碼來完成它。任何幫助將不勝感激,謝謝!如何在Safari應用程序擴展中加載本地HTML文件
-1
A
回答
-1
我終於搞清楚瞭如何在Swift代碼中做到這一點。我只在Swift工作了幾天,所以這個示例可能不是很好,但希望它有幫助:
// The file path below is relative to the root of the extension directory.
let filename: NSString = "folder/file.html" as NSString
let pathExtention = filename.pathExtension
let pathPrefix = filename.deletingPathExtension
if let filepath = Bundle.main.path(forResource: pathPrefix, ofType: pathExtention) {
do {
let contents = try String(contentsOfFile: filepath, encoding: .utf8)
} catch {
// contents could not be loaded
}
}
3
您可以閱讀文本或HTML文件中帶着幾分的XMLHttpRequest的,就像這樣:
var oReq = new XMLHttpRequest();
oReq.addEventListener('load', function() {
// file contents will be in `this.responseText`;
console.log(this.responseText);
});
oReq.open('GET', 'myfile.html');
oReq.send();
注意,在這個例子中,URL是相對的。如果您在全局頁面上使用此代碼,則它將相對於全局頁面。如果您在注入的腳本中使用它,它將與您將腳本插入到的網頁相關,這不是您想要的。在這種情況下,您需要使用以擴展程序的基本網址開頭的絕對網址。要獲取基準網址,請使用safari.extension.baseURI
。下面是從上面的例子中的6號線,但使用這樣的絕對URL:
oReq.open('GET', safari.extension.baseURI + 'myfile.html');
使用XMLHttpRequest的一個更哈克的選擇是載入你的HTML文件中的擴展的全球頁面中的iframe,然後在「讀書」 document.body.innerHTML
來自全局頁面上腳本的iframed頁面。
+0
感謝您的回答。在我看到這篇文章之前,我能夠使用Swift搞清楚,所以我沒有機會去測試。 safari.extension.baseURI是否可以使用Safari App Extensions的新方式工作? – NorthFork
相關問題
- 1. 無法加載Chrome擴展程序的本地HTML文件:
- 2. 在firefox擴展中的iframe中加載本地html文件
- 3. 如何打開safari擴展程序中的html文件
- 4. 如何在Safari共享擴展上添加ios應用程序?
- 5. Chrome擴展程序 - 擴展程序加載的JavaScript文件
- 6. 如何本地化Safari擴展?
- 7. Chrome webview應用程序加載擴展
- 8. 在Phonegap/Cordova應用程序中使用Backbone加載HTML本地模板文件
- 9. iPhone應用程序加載器和圖標文件擴展
- 10. 更改擴展應用程序佈局文件以加載
- 11. 如何從應用程序擴展中的URL加載圖像?
- 12. 在Windows 8應用程序中加載本地xml文件
- 13. Safari 5.0擴展腳本不會在本地文件上運行
- 14. 在基於導航的應用程序中加載本地HTML文件
- 15. Chrome應用程序/擴展程序下載文件從URL
- 16. 在Chrome擴展中加載本地文件(不在同一文件夾中)
- 17. 在UIWebview中加載本地html文件
- 18. webkit的擴展裝載本地文件
- 19. 如何從Safari擴展中加載NPAPI插件?
- 20. 如何在xna程序中添加任何擴展文件?
- 21. 如何使用Safari擴展附加鏈接到文本塊
- 22. 從本地文件夾加載應用程序中的圖片
- 23. 在NWJS應用程序之外加載本地文件
- 24. 在啓動Web應用程序時加載本地文件
- 25. 您可以在Mac應用程序中安裝Safari擴展嗎?
- 26. 如何在彈出控件擴展程序中獲取文本?
- 27. 如何在Safari應用程序擴展中使用Facebook上的OAuth
- 28. 只有本地HTML文件的iPhone應用程序,如何?
- 29. 在加載頁面時在webview中加載本地html文件
- 30. 如何在BlackBerry應用程序中下載html文件
我不確定如何在新選項卡中執行此操作。我所做的一切都在一個已經打開的標籤中...... – NorthFork