Javascript 在电子内部嵌入外部连接
我已经准备好了一系列instagram媒体数据,以供嵌入。在每个html的末尾都有一个脚本Javascript 在电子内部嵌入外部连接,javascript,electron,instagram-api,Javascript,Electron,Instagram Api,我已经准备好了一系列instagram媒体数据,以供嵌入。在每个html的末尾都有一个脚本 默认情况下,electron将此链接指向文件://协议。在src中添加http://,将正确返回js文件 所以link工作正常 除了解析数据和重写链接之外,我如何解决这个问题?您面临的问题是,/是一个协议相关URL,它将使用请求它的文件的任何协议。你可以阅读更多关于这方面的内容 覆盖此默认行为的最佳方法是解析数据并使用类似regex查询的内容重写链接 或者您可以尝试拦截文件协议,验证url是否为您想要拦截
默认情况下,electron将此链接指向文件://
协议。在src中添加http://
,将正确返回js文件
所以link
工作正常
除了解析数据和重写链接之外,我如何解决这个问题?您面临的问题是,
/
是一个协议相关URL,它将使用请求它的文件的任何协议。你可以阅读更多关于这方面的内容
覆盖此默认行为的最佳方法是解析数据并使用类似regex查询的内容重写链接
或者您可以尝试拦截文件协议,验证url是否为您想要拦截的url,然后重新格式化url,您可以了解如何执行此操作。下面的示例不包括您希望拦截的路径验证
const {app, protocol} = require('electron')
const path = require('path')
app.on('ready', () => {
protocol.registerFileProtocol('file', (request, callback) => {
const url = request.url.substr(7)
callback({path: path.normalize(`http://${__dirname}/${url}`)})
}, (error) => {
if (error) console.error('Failed to register protocol')
})
})
“添加
http://
正确返回js文件。”为什么不使用http:
协议?@guest271314,因为我正在构建一个小型桌面应用程序。是否可以使用http协议调用win.loadURL内的local index.html?尚未尝试electron,但由于electron基于Chromium源代码,您应该能够使用--允许--从文件访问文件标志或--禁用web安全性启动,我想您是对的。实际上,我只是解析了api响应,然后继续。感谢you@AlexeyAvdeyev没问题,我已经把你的问题投给别人看了