参考答案
如果你在react中这么样写:
// Your code: <div mycustomattribute="something" />
在react 15中将被渲染成:
// React 15 output: <div />
在react 16及之后的版本中将被渲染成:
// React 16 output: <div mycustomattribute="something" />
但这个会有限制,如果自定义的属性不是 string
, number
或者 object
,该属性依然会被忽略。
所以目前可以这样添加 webkit-playsinline 属性:
<video width="750" height="500" controls webkit-playsinline="true"> <source src="https://media.w3.org/2010/05/sintel/trailer.mp4" type="video/mp4"/> </video>
另外,还可以通过 setAttribute
进行设置,比如:
import * as React from 'react'; import { Component } from 'react'; export class VideoComponent extends Component { videoContainer: HTMLDivElement; componentDidMount() { const video = document.createElement('video'); video.autoplay = true; video.loop = true; video.muted = true; // fixes autoplay in chrome video.setAttribute('playsinline', 'true'); // fixes autoplay in webkit (ie. mobile safari) const source = document.createElement('source'); source.src = '/path/to/your/video.mp4'; source.type = 'video/mp4'; video.appendChild(source); this.videoContainer.appendChild(video); } render() { return ( <div ref={(ref) => { this.videoContainer = ref; }} /> ); } }
正文结束
Ctrl + Enter