我有一个小问题。从服务请求数据后,我得到了一个iframe代码作为响应。
<iframe src="https://www.example.com/show?data..." width="540" height="450"></iframe>
我想将其作为道具传递给我的模式组件并显示它,但是当我{this.props.iframe}
在render函数中简单地将其显示为字符串时。
在react中将其显示为html的基本方法是什么?
您可以dangerouslySetInnerHTML
像这样使用property
const Component = React.createClass({
iframe: function () {
return {
__html: this.props.iframe
}
},
render: function() {
return (
<div>
<div dangerouslySetInnerHTML={ this.iframe() } />
</div>
);
}
});
const iframe = '<iframe src="https://www.example.com/show?data..." width="540" height="450"></iframe>';
ReactDOM.render(
<Component iframe={iframe} />,
document.getElementById('container')
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="container"></div>
同样,您可以从 字符串中 复制所有属性( 根据问题,您从服务器获取iframe作为字符串
),其中包含<iframe>
标签,并将其传递给新<iframe>
标签,例如
/**
* getAttrs
* returns all attributes from TAG string
* @return Object
*/
const getAttrs = (iframeTag) => {
var doc = document.createElement('div');
doc.innerHTML = iframeTag;
const iframe = doc.getElementsByTagName('iframe')[0];
return [].slice
.call(iframe.attributes)
.reduce((attrs, element) => {
attrs[element.name] = element.value;
return attrs;
}, {});
}
const Component = React.createClass({
render: function() {
return (
<div>
<iframe {...getAttrs(this.props.iframe) } />
</div>
);
}
});
const iframe = '<iframe src="https://www.example.com/show?data..." width="540" height="450"></iframe>';
ReactDOM.render(
<Component iframe={iframe} />,
document.getElementById('container')
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="container"><div>
问题内容: 我正在尝试将一些内容插入“空白” iFrame中,但是没有插入任何内容。 HTML: JS: 我正在调用该函数,所以我不明白为什么它没有插入。 问题答案: 您真的不需要jQuery: 如果绝对必须使用jQuery,则应使用 请不要忘记,如果您使用的是jQuery,则需要按如下所示插入DOMReady函数:
lng、lat COORD呈现到iframe fine下的页面 我想这可能很容易做到,但似乎不能将它们嵌入到URL中。TIA
问题内容: 我正在尝试使用Angular 1.2将iframe动态插入页面中。这是代码: HTML: js: 因此data.html是一个具有有效HTML开头的字符串 该字符串还包含一些div。所以它看起来像: 我在app.js’ngSanitize’中使用。它显示的是div(在iframe之后),而不是iframe本身。 如果我使用jQuery,基本上 效果很好…但是试图使其正确的angular
问题内容: 是的,我知道元组是不可变的,但是这种情况使得我需要在每个元组中插入一个额外的值。因此,其中一项是金额,我需要在其旁边添加其他货币的新项目,如下所示: 可能? 谢谢! 问题答案: 您可以将其转换为列表,插入项目,然后将其转换回元组。
问题内容: 与 哪个更好,为什么? 还是除了以后编写更少的代码外没有其他区别? 写作是否意味着只导入Component对象? 问题答案: 让您代替。它减少了React名称空间的键入和重复,这通常是一种理想的现代编码约定。 此外,Webpack 2和Rollup之类的工具会“摇晃”,这意味着任何未使用的导出都不会捆绑到您的最终代码中。使用/,您可以保证所有React的源代码都将被捆绑。使用,某些工具
我需要在React类组件中插入一个JS-script,并使该脚本仅在该组件已经挂载并且物理上位于DOM中的时刻运行。我该怎么做呢?谢谢你的关注。