gpt4 book ai didi

javascript - '未捕获类型错误 : Illegal invocation' when trying to support cross browser prefixes in clojurescript

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:03:06 26 4
gpt4 key购买 nike

getUserMedia 有许多在许多浏览器中仍然需要的前缀。我试图通过将所有前缀放在 getUserMedia 中来隐藏这些前缀的使用。

(def getUserMedia
(or js/navigator.getUserMedia
js/navigator.webkitGetUserMedia
js/navigator.mozGetUserMedia
js/navigator.msGetUserMedia))

(defn start-fx [app]
(if getUserMedia
(getUserMedia
;; WORKS IF I REPLACE THE ABOVE getUserMedia WITH
;; js/navigator.webkitGetUserMedia USING CHROME BROWSER
#js {:video true :audio true}
#(om/update! app :record-src (.createObjectURL js/window.URL %))
#(throw %))
(js/alert "This browser does not support video recording!")))

然后当我尝试从 start-fx 调用它时,我在调用 getUserMedia 时得到了一个 Uncaught TypeError: Illegal invocation。我应该怎么做才能让我的代码跨浏览器兼容?

最佳答案

getUserMedia 必须绑定(bind)到 navigator 对象。等效的 JavaScript 是这样的:

var getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia || msGetUserMedia;
if (getUserMedia) {
getUserMedia = getUserMedia.bind(navigator);
}

关于javascript - '未捕获类型错误 : Illegal invocation' when trying to support cross browser prefixes in clojurescript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31481396/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com