无法在网站代码中添加内嵌iframe,求助实现电台播放器组件
你现在用的这段代码本身就是不需要iframe的官方嵌入方式,之所以可能没生效或遇到过滤问题,大概率是网站后台的安全过滤机制在起作用——它会自动删除iframe、document这类有安全风险的内容,甚至可能过滤外部脚本或自定义HTML属性。给你几个实用的解决步骤:
把外部脚本下载到本地加载
后台很可能拦截外部域名的script链接,你可以直接访问//radyoplayer.net/players/v6/player.js?v=0.6.0.0下载这个JS文件,放到网站的静态资源文件夹(比如专门存JS的js文件夹)里,再把代码里的src改成本地路径,示例:<div class="radyoTelekomFooterDIV"> <div radyotelekom="radyoplayer-v6"></div> <script type="application/javascript" src="/js/player.js?v=0.6.0.0" charset="UTF-8"></script> </div>这样能绕开外部脚本的拦截问题。
确认代码放置位置
把这段代码放在你想显示播放器的位置,比如登录表单下方,或者页面底部的<body>标签结束前——放在底部不会影响页面加载速度,还能确保页面元素加载完成后再初始化播放器。排查加载错误
按F12打开浏览器开发者工具,切换到「Console」标签,查看是否有红色报错:比如“404找不到文件”说明本地路径写错了,“权限不足”说明后台仍拦截了脚本,根据报错调整即可。若自定义属性被过滤,试试手动初始化
如果后台连radyotelekom="radyoplayer-v6"这个自定义属性都删除了,就自己写JS手动初始化播放器:<div id="my-radio-player"></div> <script> // 等页面完全加载后再初始化 window.onload = function() { // 创建播放器实例,指定挂载的容器ID new RadyoTelekom.Player({ container: '#my-radio-player', // 填写你的电台ID,可在radyoplayer管理后台找到对应配置参数 stationId: '你的电台ID' }); }; </script>要是找不到电台ID,去radyoplayer的嵌入页面重新生成代码就行。
另外说明:后台过滤iframe和document是正常的安全操作,避免恶意代码注入,你现在用的JS嵌入方式是官方推荐的,比iframe更安全灵活,不用纠结非要用iframe。
内容的提问来源于stack exchange,提问作者Zeudern

