Awesomium javascript错误:SECURITY_ERR:DOM例外18

时间:2013-03-24 16:19:49

标签: c# javascript awesomium

我正在将此javascript执行到Awesomium WebControl

                  function getImage(img) {
                        var canvas = document.createElement(\"canvas\");
                        canvas.width = img.width;
                        canvas.height = img.height;
                        var ctx = canvas.getContext(\"2d\");
                        ctx.drawImage(img, 0,0);
                        try{
                              var imgData=ctx.getImageData(10,10,50,50);
                              alert(imgData);
                        }catch(err){" +
                              alert(err);" +
                        }
                  }

现在此代码提供此警报:

  

错误:SECURITY_ERR:DOM异常18

现在这是一个相当常见的javascript代码。有人告诉我,如果我可以设置正确的标志,那么它可以关闭。所以代码应该是这样的:

WebCore.Initialize(new WebConfig { AdditionalOptions = new[] { "--allow-file-access-from-files" } });

这个“--allow-file-access-from-files”标志适用于Chrome。 现在有人知道这件事。建议或代码示例将受到高度赞赏。

由于

2 个答案:

答案 0 :(得分:0)

我使用的是版本1.6.6。使用此代码:

        WebCoreConfig config = new WebCoreConfig();
        config.DisableSameOriginPolicy = true;
        WebCore.Initialize(config, true);

答案 1 :(得分:0)

看起来这些设置已移至 WebSessionProvider http://answers.awesomium.com/questions/819/disablesameoriginpolicy.html

注意: FileAccessFromFileURL UniversalAccessFromFileURL

示例:

<Window.Resources>
    <controls:WebSessionProvider x:Key="mySession" DataPath=".\Cache">
       <core:WebPreferences 
            FileAccessFromFileURL="True"
            UniversalAccessFromFileURL="True"
            SmoothScrolling="True" 
            DefaultEncoding="iso-8859-7" />
     </controls:WebSessionProvider>
</Window.Resources>

<awe:WebControl Name="webControl"
                    WebSession="{Binding Source={StaticResource mySession}}" 
                    Source="file:///k:/something/index.html"
                    DocumentReady="webControl_DocumentReady"
                    ></awe:WebControl>