在我们的应用程序中,我们处理粘贴的内容,然后将其插入到可信的div中.在Firefox和Chrome中,粘贴event.clipboardData.getData有两个键text/plain和text/html.在Safari中,它有大约12个键,范围从文本到RTF,但不包括用户粘贴在其中任何一个中的HTML.如何从粘贴事件中访问它?
$( 'div' ).on( 'paste', function( aEvent ) {
var evt = aEvent.originalEvent;
var text = evt.clipboardData.getData( 'text/plain' );
var html = evt.clipboardData.getData( 'text/html' );
var i, len;
console.log( 'text=' + text );
console.log( 'html=' + html );
console.log( 'data types=' );
console.log( evt.clipboardData.types );
for ( i = 0, len = evt.clipboardData.types.length; i < len; i++ ) {
console.log( evt.clipboardData.types[ i ] + '=' + evt.clipboardData.getData( evt.clipboardData.types[ i ] ) );
}
});
Run Code Online (Sandbox Code Playgroud)
突出显示两个段落,复制它们,然后粘贴到新行并观察控制台.
[编辑]如果我从复制事件中使用Rangy的range.toHtml,我可以保存所选内容的快照.在粘贴事件中,我首先检查剪贴板,然后检查我保存的片段,然后回退到文本.理想情况下,我希望尽可能让剪贴板API工作.
我是Node的新手,我正在尝试用ExpressJS(http://expressjs.com/)创建一个MVC应用程序.我在GitHub上使用与MVC示例(https://github.com/visionmedia/express/tree/master/examples/mvc)相同的文件夹结构.
在我的控制器文件夹中,我有2个文件夹:main和system.我想要的是在/controllers/system/index.js中定义一个基本控制器,并让/controllers/main/index.js继承系统控制器.每个其他模块都将扩展系统并覆盖一些函数来生成页面.
在另一个教程中,我发现了以下代码.
Base.js
var _ = require("underscore");
module.exports = {
name: "base",
extend: function(child) {
return _.extend({}, this, child);
},
run: function(req, res, next) {
}
};
Run Code Online (Sandbox Code Playgroud)
Home.js
var BaseController = require("./Base"),
View = require("../views/Base"),
model = new (require("../models/ContentModel"));
module.exports = BaseController.extend({
name: "Home",
content: null,
run: function(req, res, next) {
model.setDB(req.db);
var self = this;
this.getContent(function() {
var v = new View(res, 'home');
v.render(self.content);
})
},
getContent: function(callback) {
var self = this;
this.content …Run Code Online (Sandbox Code Playgroud) 嗨,我是节点的新手,我正在尝试构建一个MVC应用程序.对于控制器和模型,我能够使用utils.inherits来创建基类和子类.对于视图,我想创建3个级别:base,html/json,module.在每个级别都有一个名为construct的函数,需要在创建实例时调用,在顶部调用它应该链接回每个级别.
基本视图:
function Base_view( ) {
this._response = null;
};
Base_view.prototype.construct = function( res ) {
this._response = res;
};
Run Code Online (Sandbox Code Playgroud)
Html视图:
var util = require( 'util' ),
Base_view = require( './view' );
function Html_view( ) {
Base_view.apply( this, arguments );
}
util.inherits( Html_view, Base_view );
Html_view.prototype.construct = function( res, name ) {
this.constructor.super_.prototype.construct.apply( this, arguments );
};
Run Code Online (Sandbox Code Playgroud)
模块视图:
var util = require( 'util' ),
Html_view = require( './../base/html' );
function Main_view( ) {
Html_view.apply( this, arguments );
}
util.inherits( Main_view, …Run Code Online (Sandbox Code Playgroud)