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

问题描述 投票:0回答:1

我有一个使用嵌入式视频的网站(通过 youtube 的分享 -> 嵌入),当我在 Chrome 中打开 DevTools 时,我看到一个错误:

无法识别的功能:“网络共享”。

(匿名)@react-dom.product….js?ver=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 嵌入代码中删除网络共享,但要浏览很多视频,哈哈。

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>
reactjs google-chrome youtube embed devtools
1个回答
0
投票

这不是您网站的问题,并且似乎不会产生负面影响。这是 Chrome 桌面版的一个错误,不支持 Web Share

如果 iframe 要使用 Web Share API,则从 Chrome 110 开始

需要将此功能添加到 iframe 的 
allow 属性中。 YouTube 在其嵌入代码中指定了它。但桌面版 Chrome 无法识别它。

Chrome 有一个针对新行为的

测试站点 ,链接自 他们自己的功能跟踪器 ,该网站也显示了警告。

如果

web-share 存在,您可以

尝试仅包含 
navigator.canShare
 位。这将删除警告。但无论如何它是无害的。比如:

const myIframe = ...; const hasWebShare = 'canShare' in navigator; if (hasWebShare) { myIframe.allow = 'web-share'; }
但一般不值得。

© www.soinside.com 2019 - 2024. All rights reserved.