You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.3 KiB
43 lines
1.3 KiB
/** |
|
* Copyright 2013-2015, Facebook, Inc. |
|
* All rights reserved. |
|
* |
|
* This source code is licensed under the BSD-style license found in the |
|
* LICENSE file in the root directory of this source tree. An additional grant |
|
* of patent rights can be found in the PATENTS file in the same directory. |
|
* |
|
* @providesModule ReactDOMIframe |
|
*/ |
|
|
|
'use strict'; |
|
|
|
var EventConstants = require("./EventConstants"); |
|
var LocalEventTrapMixin = require("./LocalEventTrapMixin"); |
|
var ReactBrowserComponentMixin = require("./ReactBrowserComponentMixin"); |
|
var ReactClass = require("./ReactClass"); |
|
var ReactElement = require("./ReactElement"); |
|
|
|
var iframe = ReactElement.createFactory('iframe'); |
|
|
|
/** |
|
* Since onLoad doesn't bubble OR capture on the top level in IE8, we need to |
|
* capture it on the <iframe> element itself. There are lots of hacks we could |
|
* do to accomplish this, but the most reliable is to make <iframe> a composite |
|
* component and use `componentDidMount` to attach the event handlers. |
|
*/ |
|
var ReactDOMIframe = ReactClass.createClass({ |
|
displayName: 'ReactDOMIframe', |
|
tagName: 'IFRAME', |
|
|
|
mixins: [ReactBrowserComponentMixin, LocalEventTrapMixin], |
|
|
|
render: function() { |
|
return iframe(this.props); |
|
}, |
|
|
|
componentDidMount: function() { |
|
this.trapBubbledEvent(EventConstants.topLevelTypes.topLoad, 'load'); |
|
} |
|
}); |
|
|
|
module.exports = ReactDOMIframe;
|
|
|