我想允许用户将图像从网页拖到我的网络应用程序中,然后在应用程序的其他地方存储和使用图像 url。所以我正在创建一个输入字段作为拖动目标。
但由于这允许放置任何可拖动的 Web 对象(如链接),我需要进行一些错误检查。我可以在那里放一个按钮,但如果自动检测到下降会更好。
所以问题是......是否有任何事件处理程序 - 主要在 IE7 和 Firefox3 中支持 - 在删除图像时触发?它只是在现场触发更改事件吗?
我想允许用户将图像从网页拖到我的网络应用程序中,然后在应用程序的其他地方存储和使用图像 url。所以我正在创建一个输入字段作为拖动目标。
但由于这允许放置任何可拖动的 Web 对象(如链接),我需要进行一些错误检查。我可以在那里放一个按钮,但如果自动检测到下降会更好。
所以问题是......是否有任何事件处理程序 - 主要在 IE7 和 Firefox3 中支持 - 在删除图像时触发?它只是在现场触发更改事件吗?
不,据我所知,没有任何事件会在您下线后立即触发。
这是一个可能的解决方案:
var input = document.getElementById("input");
var lastVal = input.value;
setInterval(function() {
if (input.value !== lastVal) {
if (input.value) {
if ( /\.(jpe?g|gif|bmp|png)(\?.*)?$/.test(input.value) ){
alert('It\'s an image URL!!!');
} else {
alert('Not an image URL...');
}
}
lastVal = input.value;
}
}, 100);
演示在这里:http: //jsbin.com/izake
注意:似乎某些浏览器 (IE) 不允许您像其他浏览器一样将项目拖放到字段中。从头开始创建一个可能值得 - 页面上的所有内容都是可拖动的......
拖放后您不会直接获得标准事件(仅在单击文本字段外部之后),但也许您可以使用某种 DragListener ...
要检查 URL 是否为有效图像,最好检查扩展名(JPG、PNG、GIF...)并检查 URL 是否以“file:”开头 - 如果是,则链接到本地图像文件,你应该忽略它。