无法识别的功能:网络共享(Youtube,Chrome)

mccptt67  于 2023-09-28  发布在  Go
关注(0)|答案(1)|浏览(126)

我有一个使用嵌入式视频的网站(通过youtube的share -> embed),当我在Chrome中打开DevTools时,我看到一个错误:
无法识别的功能:'web-share'。
(匿名)@ react-dom.production..js?版本=16.14.0:184
当我点击react-dom.production..链接,我看到以下代码:

var si = /^(.*)[\\\/]/, Q = "function" === typeof Symbol && Symbol.for, Pc = Q ? Symbol.for("react.element") : 60103, gb = Q ? Symbol.for("react.portal") : 60106, Ma = Q ? Symbol.for("react.fragment") : 60107, Af = Q ? Symbol.for("react.strict_mode") : 60108, kc = Q ? Symbol.for("react.profiler") : 60114, Cf = Q ? Symbol.for("react.provider") : 60109, Bf = Q ? Symbol.for("react.context") : 60110, Hj = Q ? Symbol.for("react.concurrent_mode") : 60111, zd = Q ? Symbol.for("react.forward_ref") : 60112, lc = Q ? Symbol.for("react.suspense") : 60113, yd = Q ? Symbol.for("react.suspense_list") : 60120, Ad = Q ? Symbol.for("react.memo") : 60115, Ef = Q ? Symbol.for("react.lazy") : 60116, Df = Q ? Symbol.for("react.block") : 60121, zf = "function" === typeof Symbol && Symbol.iterator, od, xh = function(a) {
        return "undefined" !== typeof MSApp && MSApp.execUnsafeLocalFunction ? function(b, c, d, e) {
            MSApp.execUnsafeLocalFunction(function() {
                return a(b, c, d, e)
            })
        }
        : a
    }(function(a, b) {
        if ("http://www.w3.org/2000/svg" !== a.namespaceURI || "innerHTML"in a)
            a.innerHTML = b;
        else {
            od = od || document.createElement("div");
            od.innerHTML = "<svg>" + b.valueOf().toString() + "</svg>";
            for (b = od.firstChild; a.firstChild; )
                a.removeChild(a.firstChild);
            for (; b.firstChild; )
                a.appendChild(b.firstChild)
        }
    }),

我不知道该怎么做(据推测,这是属于184的所有代码),因为我是JavaScript和React的新手。
我可以在我的网站上修复这个错误吗?如果是,如何进行?这是Youtube的问题吗?
我试着在网上到处找,但我没有找到任何关于我的具体错误的参考资料。我想从iframe嵌入代码中删除web共享,但它有很多视频要看。
iframe嵌入代码示例:

<iframe width="241" height="143" src="https://www.youtube-nocookie.com/embed/youtubeid" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen=""></iframe>
kx5bkwkv

kx5bkwkv1#

这不是你的网站的问题,似乎没有负面影响。这是Chrome桌面中的一个错误,不支持Web Share
这个特性是required as of Chrome 110,如果iframe想要使用Web Share API,它将被添加到iframe的allow属性中。YouTube在他们的嵌入代码中指定了它。但桌面上的Chrome无法识别它。
Chrome有一个新行为的test site,从their own feature tracker链接,也显示了警告。
如果navigator.canShare存在,您可以尝试只包含web-share位。这将消除警告。但它是无害的。例如:

const myIframe = ...;
const hasWebShare = 'canShare' in navigator;
if (hasWebShare) {
    myIframe.allow = 'web-share';
}

但总的来说不值得。

相关问题