拖拽:替换数据
Dragging: Replacement of the data
我得到了一个带有一些html元素的网页,包括一个文本区和一个嵌入的可内容iframe (rte)。
使用这段代码,我设法捕捉主页上的draggesture事件,并设置text/html-data
jQuery(document).bind('draggesture', function(event){
event.originalEvent.dataTransfer.setData('text/html', 'my_data');
});
现在,当在主页上的文本区域掉落'my_data'被掉落。删除可内容iframe也会删除'my_data'。
但是我有三个问题我不明白:
1。将这种处理程序绑定到iframes文档可以工作。我将事件数据模拟设置为上述代码,但它不起作用。当我将其拖动到iframe内或主页上的文本区域时,"my_data"不会插入,而是原始选择的内容。我能做些什么来设置'my_data'?
2。我尝试使用iframe和主页面的drop事件修改/设置数据:
jQuery(ed.getDoc()).bind('drop', function(event){
event.originalEvent.dataTransfer.setData('text/html', 'my_data');
});
但我得到一个javascript错误在两个文档(主页和iframe):"修改是不允许这个文档"。为什么我得到这个错误?有解决这个问题的方法吗?看起来pimvdb得到了一个解释。
3。当从主页选择<p>some text</p><hr><p>some text</p>
并将其拖拽到可满足的iframe中时,当我使用上面的第一个代码示例设置'my_data'(在Draggesture上)时,不会插入任何内容。拖到文本区工作。有人知道这里出了什么问题吗?(问题不发生使用chrome!)
EDIT:这里是一个jsFiddle演示,可以玩一下并理解问题:
http://jsfiddle.net/R2rHn/5/您正在使用draggesture
,但dragstart
工作
第二,将dataTransfer
数据设置在drop
上是没有意义的,因为那时拖拽"包"已经到达。它在投放后就被摧毁了,所以你为什么要在那个时候改变它?
我清理了你的小提琴,弄清楚发生了什么,以便能够解决它,这就是结果。它似乎可以在Chrome上工作。
http://jsfiddle.net/R2rHn/7/tinyMCE.init({
mode : "exact",
elements : "content",
skin : "o2k7",
skin_variant : "silver",
setup : function(ed) {
ed.onInit.add(function(ed, evt) {
var iframe = ed.getDoc();
jQuery(iframe).bind('dragstart', function(event){
event.originalEvent
.dataTransfer
.setData('text/plain', 'modified_content_from_iframe');
});
});
},
});
jQuery(document).bind('dragstart', function(event){ event.originalEvent
.dataTransfer
.setData('text/html', 'my_data_html');
event.originalEvent
.dataTransfer
.setData('text/plain', 'my_data_plain');
});
- 如何替换数据属性中的特定字符串单词
- 用Promises返回的数据替换出现的文本
- 按数据属性循环元素并替换值
- 追加子数据 URI,替换 IE 中的其他对象
- jQuery:裁剪以删除图像数据并替换为新数据
- 需要帮助-用数据库中的数据替换DIV内容而不刷新(使用-jquery、hmlhttp、CI)
- 循环并用parseJSON数据替换CSS
- 替换不处理数据属性值
- 是否有任何功能可以合并两个JSON数据集并替换旧信息?(节点.JS)
- 在javascript中替换当前数据时出错
- jquery替换DIV数据,然后跟踪对它的点击
- Breeze不会用其真实数据替换Ref:节点
- 用新数据替换observableArray
- AJAX 数据 - 替换 HTML 与更新值属性
- Chrome扩展:用剪贴板数据替换文本区域中的选定文本
- 用从某个URL检索到的数据替换整个html-body内容
- 数据表用其作用域之外的数据替换变量
- 使用PHP和javascript将数据替换为json文件
- 如果ajax完成,用请求的数据替换html
- 用新数据替换附加的数据