main.html中
<!DOCTYPE html>
<html>
<head>
<title>test</title>
</head>
<body>
<p id="test" draggable="true">hello world</p>
<script type="application/dart" src="main.dart"></script>
<!-- for this next line to work, your pubspec.yaml file must have a dependency on 'browser' -->
<script src="packages/browser/dart.js"></script>
</body>
</html>
和main.dart
import 'dart:html';
void main() {
var elem = query('#test');
elem.onDragStart.listen((evt) {
evt.clipboardData.setData('text/html', elem.innerHtml);
});
}
正在產生異常
The null object does not have a method 'setData'.
NoSuchMethodError : method not found: 'setData'
Receiver: null
Arguments: ["text/html", "hello world"]
我已經搜索過了,但可以找到沒有關於我可能會做錯什麼的相關信息,或者關於dart中的剪貼板數據(甚至API在這個問題上保持沉默,並且源dart:html文件只是指向「本地代碼」
只是爲了檢查 - 這是剪貼板數據,還是'evt.dataTransfer.setData('text/html',elem.innerHtml);'爲你工作? – 2013-03-07 09:06:14
是的,'dataTransfer'是我正在尋找的屬性。它最近一定發生了變化 - 它仍然是API文檔中的'clipboardData','dataTransfer'在編輯器中給我一個警告,但它似乎工作。 謝謝! – ovangle 2013-03-07 09:12:42
我添加了一個新的答案,它將上面的評論轉換爲答案(並解決了自動完成/編輯器警告) – 2013-03-07 11:42:03