テストが示すように、スクリプトによって属性を変更してもallow=、iframe 内で機能する機能ポリシーのアクセス許可は変更されません。
これは、allow=属性のアクセス許可が DOM ビルドの段階で適用されるためです。
したがって、変更された機能ポリシーのアクセス許可を適用するには、iframe コンテンツを再読み込みする必要があります。
iframe コンテンツを再読み込みすると、新しい権限が適用されます。そのようにしてみてください:
iframe = document.getElementById('id_of_frame');
iframe.setAttribute('allow', "autoplay; fullscreen *;");
iframe.src = iframe.src;
どちらも iframe 内のすべての要素がフルスクリーン モードを使用できることを意味しallow="fullscreen"ます。allow="fullscreen *"
これは<iframe>、パーミッションが iframe の属性で URL の起点を表すものにfullscreen *変換されるためです。
上記のテストでこれを観察するか、自分で確認できます。fullscreen 'src''src'src=
// array of allowed origins for 'fullscreen' feature:
var origins = featurePolicy.getAllowlistForFeature('fullscreen');
中は<iframe src='https://example.com' allow="fullscreen *">ありoriginsますhttps://example.comがありません*。
ワイルドカード*は、機能ポリシーの HTTP ヘッダーでのみ意味があります。これは、ページのいずれかでfullscreen *フルスクリーン モードを許可する場合に限ります。<iframe src='...'>