【发布时间】:2016-04-19 03:00:22
【问题描述】:
玩了一下 websharper 并尝试让 webgl demo 在我的系统上运行。我修改了给定的演示代码,以便可以在 SinglePage 应用程序中使用它。另外,我将演示使用的纹理更改为我系统上实际拥有的纹理。
let MakeAndBindTexture (gl : WebGL.RenderingContext) f =
Img []
|>! Events.OnLoad (fun img ev ->
let tex = gl.CreateTexture()
gl.ActiveTexture(gl.TEXTURE0)
gl.BindTexture(gl.TEXTURE_2D, tex)
gl.PixelStorei(gl.UNPACK_FLIP_Y_WEBGL, 1)
gl.TexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, img.Dom)
gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR)
gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR)
f ())
|> fun img -> img -< [Attr.Src "mandel.jpg"] // <<-- located in project root
|> ignore
用谷歌浏览器测试它,(不涉及网络服务器 - 从项目根文件夹运行 index.html,我得到以下错误日志:
SinglePageApplication1.min.js:42 Uncaught SecurityError: Failed to execute 'texImage2D' on 'WebGLRenderingContext': the cross-origin image at file:///E:/R/playground/ConsoleApplication7/SinglePageApplication1/mandel.jpg 可能未加载。
另一方面,Microsoft Edge 成功运行并产生了预期的结果。
现在,我当然想知道,与其他路径相同的 .jpg 如何会导致 google chrome 出现安全错误。
另外,我想知道我是否有机会让它在谷歌浏览器中运行,不知何故......
我还尝试了 mandel.jpg 的其他位置,例如 ...min.js 文件旁边。但是所有位置都产生了相同的错误。
【问题讨论】:
标签: google-chrome f# webgl websharper