我目前正在浏览一个自定义协议,以便从浏览器将信息传递到电子应用程序中。这在除Chrome之外的每一个浏览器上都很好。下面的代码在iframe中运行协议,然后将数据加载到电子中。
码
<iframe id="dataDiv" style="width:100%;align:center;overflow-y:hidden;" frameborder="0" scrolling="no" />
url = "custom-protocol://some-data?"
for (i = 0; i < 5; i++) {
$("#dataDiv").attr("src", url + i);
}上面的代码是我如何实现这一目标的伪代码。
期望
我的期望是,它将循环5次,并将数据传递到电子应用程序。如前所述,这似乎只适用于IE和Firefox。
实际结果
在调试Chrome时,我发现它只是在执行第一页。从外观上看,不管出于什么原因,Chrome只执行循环中的第一个协议加载。
其他尝试
有谁知道Chrome中的安全设置会防止定制协议同时加载到Chrome中吗?
发布于 2019-04-19 18:38:44
答案很简单,不要使用协议来发布数据。相反,我最终在电子中创建了一个web服务器,并通过URL传递数据。
var http=require('http');
var url=require('url');
var server=http.createServer(function(req,res){
var pathname=url.parse(req.url).pathname;
switch(pathname){
case '/data':
var query=url.parse(req.url).query;
someFunction(query);
res.end('200 ok');
break;
}
}).listen(8080);通过这种方式,我可以使用AJAX启动数据并将数据传递给电子,而不是iframes。
然后您只需将数据传递到类似:http://localhost:8080/data?{insertyourdatahere}中。
https://stackoverflow.com/questions/55735666
复制相似问题