如何使用CefSharp访问远程网页上的本地资源?

时间:2014-01-26 00:23:10

标签: c# javascript cefsharp

我一直在寻找所有地方,但我无法从file://网址加载CefSharp。上班。这就是我现在所拥有的。

BrowserSettings browserSettings = new BrowserSettings();
browserSettings.FileAccessFromFileUrlsAllowed = true;
browserSettings.UniversalAccessFromFileUrlsAllowed = true;
browserSettings.DeveloperToolsDisabled = false;


this.webview = new WebView("http://google.com", browserSettings);

如您所见,我将FileAccessFromFileUrlsAllowedUniversalAccessFromFileUrlsAllowed设置为true。

我正在尝试使用Javascript将本地图像添加到DOM:

this.webview.ExecuteScript(@"
    var img = document.createElement('img');
    img.setAttribute('src','file:///C:/test.jpg');
    document.getElementsByTagName('body')[0].appendChild(img);
");

它不起作用;当我打开开发人员控制台时,会弹出此错误

Not allowed to load local resource: file:///C:/test.jpg

我一直在努力解决这个问题,提前谢谢。

3 个答案:

答案 0 :(得分:0)

请参阅此CefSharp Google论坛主题中的问与答:https://groups.google.com/d/msg/cefsharp/4gxmKwrhDSU/V71BSQdEroMJ

答案 1 :(得分:0)

在我的解决方案帮助其他人的情况下回答一个相当古老的问题。

我遇到了类似的问题,“不允许加载本地资源:”我相信我已经正确设置了所有内容。我终于意识到我的一些文件没有被复制到构建输出目录,因为在Visual Studio中没有正确配置我的项目。添加html,js等文件后,我忘了在文件'Copy to Output'='Copy if newer'上设置属性。错误消息有点误导,因为问题是由于找不到文件。

答案 2 :(得分:0)

一个很老的问题,但是它只是发生在我身上,我想出了一个解决方案。以防万一它可以帮助某人,如果您添加下一行,则可以加载本地资源:

browserSettings.LocalStorage = CefState.Enabled;