Javascript 将任意脚本标记注入React应用程序

Javascript 将任意脚本标记注入React应用程序,javascript,reactjs,Javascript,Reactjs,我想在React应用程序中嵌入视频播放器,但: 我没有直接访问视频URL的权限 我不想绕过他们的JS视频播放器,因为它提供了很多功能,比如密码保护、字幕和其他我找不到的功能(所有其他提供密码保护的视频托管服务都不允许我创建任何数量的密码来保护每个视频) 他们没有提供任何我可以直接使用的反应成分 他们向我提供的唯一一件事是通常进入简单HTML页面的以下类型的嵌入代码: <!--player code begin--> <div id="svp_playerdrxts

我想在React应用程序中嵌入视频播放器,但:

  • 我没有直接访问视频URL的权限
  • 我不想绕过他们的JS视频播放器,因为它提供了很多功能,比如密码保护、字幕和其他我找不到的功能(所有其他提供密码保护的视频托管服务都不允许我创建任何数量的密码来保护每个视频)
  • 他们没有提供任何我可以直接使用的反应成分
他们向我提供的唯一一件事是通常进入简单HTML页面的以下类型的嵌入代码:

<!--player code begin-->
<div id="svp_playerdrxtsr0w13c4" style="width:720px;height:810px;position:relative;"></div>
<script language="javascript" type="text/javascript" src="//play.streamingvideoprovider.com/js/dplayer.js"></script>
<script language="javascript">
<!--
var vars = {clip_id:"drxtsr0w13c4",transparent:"true",pause:"1",repeat:"",bg_color:"#ffffff",fs_mode:"2",no_controls:"",start_img:"0",start_volume:"34",close_button:"",brand_new_window:"1",auto_hide:"1",stretch_video:"",player_align:"NONE",offset_x:"0",offset_y:"0",player_color_ratio:0.6,skinAlpha:"50",colorBase:"#250864",colorIcon:"#ffffff",colorHighlight:"#7f54f8",direct:"false",is_responsive:"true",viewers_limit:0,cc_position:"bottom",cc_positionOffset:70,cc_multiplier:0.03,cc_textColor:"#ffffff",cc_textOutlineColor:"#ffffff",cc_bkgColor:"#000000",cc_bkgAlpha:0.1,aspect_ratio:"16:9",play_button:"1",play_button_style:"pulsing",sleek_player:"1",auto_play:"",auto_play_type:"unMute",floating_player:"none"};
var svp_player = new SVPDynamicPlayer("svp_playerdrxtsr0w13c4", "", "100%", "100%", {use_div:"svp_playerdrxtsr0w13c4",skin:"3"}, vars);
svp_player.execute();
//-->
</script>
<noscript>Your browser does not support JavaScript! JavaScript is needed to display this video player!</noscript>
<!--player code end-->

您的浏览器不支持JavaScript!显示此视频播放器需要JavaScript!
是否可以编写一个组件,让我将这样的视频播放器嵌入我的React应用程序?

简单的方法是(请仔细阅读)。另一种方法是将其重构为react组件。React只是一种渲染某物并在渲染后激发一些副作用的方法。如果你想采用这种方法,请进一步阅读

你要做的第一件事——将他们的播放器脚本添加到你的html中一次(在第三行)。接下来,创建一个组件,该组件将为player呈现标记位置。您将把
vars
作为道具传递给组件。从
props.clip\u id
为您的放置构造id,以便您能够将其引用为有效。创建将初始化玩家的效果

这是一本书。你需要根据你的特殊需要调整它。也许你们会想要执行清理或者其他一些事情——为此,你们可以将玩家实例存储在ref中,并在道具改变时在其他效果中操作它,或者执行清理