小编Max*_*Art的帖子

最短和最长日期

我想知道哪个是Javascript Date对象允许的最小和最大日期.我发现最小日期是200000 bC,但我无法得到任何参考.

有人知道答案吗?我只是希望它不依赖于浏览器.

"epoch time"中的答案(= 1970-01-01 00:00:00 UTC + 00的毫秒数)将是最好的.

javascript datetime max

121
推荐指数
3
解决办法
12万
查看次数

了解触摸事件

我正在尝试让我的一些图书馆使用触摸设备,但我很难弄清楚它们是如何被支持的以及它们是如何工作的.

基本上,有5个触摸事件,但似乎只有touchstart事件(duh)在移动浏览器中有共识.我创建了一个小提琴作为测试用例.

我已经在我的Galaxy Note上使用Android 4测试了这个,但您也可以通过桌面浏览器检查链接.

目标是试图弄清楚如何处理水龙头,双水龙头和长水龙头.没有什么花哨.

基本上,这是发生的事情:

Android的浏览器的股票不会触发触摸事件.它只是试图模仿鼠标点击,水龙头,射击mousedown,mouseupclick事件连续,但双水龙头只是放大和缩小网页塔.

当手指触摸屏幕时,Chrome for Android会触发touchstart事件.如果它的发布很快,它触发那么mousedown,mouseup,touchend最后click事件.

在的情况下,长按后,在约半秒它激发mousedownmouseup,和touchend当手指抬起时,没有click在结束事件.

如果你移动你的手指,它会发射touchmove几次事件,然后它会发射一个touchcancel事件,之后什么都不会发生,甚至touchend在举起手指时都不会发生.

双击触发/缩小功能变焦,但事件明智它触发组合touchstart- touchevent两次,发射没有鼠标事件.

火狐为Android正确触发该touchstart事件,并在短击火灾的情况下mousedown,mouseup,touchendclick之后.

如果长时间点击,它会触发mousedown,mouseup最后 …

javascript mobile touch

78
推荐指数
3
解决办法
7万
查看次数

使用ServiceLoader动态加载插件jar

我正在尝试为我的应用程序创建一个插件系统,我想从简单的东西开始.每个插件都应该打包在.jar文件中并实现SimplePlugin接口:

package plugintest;

public interface SimplePlugin {
    public String getName();
}
Run Code Online (Sandbox Code Playgroud)

现在我创建了一个SimplePlugin包装在.jar中的实现,并将其放在主应用程序的plugin /子目录中:

package plugintest;

public class PluginTest implements SimplePlugin {
    public String getName() {
        return "I'm the plugin!";
    }
}
Run Code Online (Sandbox Code Playgroud)

在主应用程序中,我想获得一个实例PluginTest.我尝试了两种方法,都使用了java.util.ServiceLoader.

1.动态扩展类路径

这使用已知的hack在系统类加载器上使用反射来避免封装,以便添加URL类路径.

package plugintest.system;

import plugintest.SimplePlugin;

import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Iterator;
import java.util.ServiceLoader;

public class ManagePlugins {
    public static void main(String[] args) throws IOException {
        File loc = new File("plugins");
        extendClasspath(loc);

        ServiceLoader<SimplePlugin> sl …
Run Code Online (Sandbox Code Playgroud)

java jar classpath serviceloader

39
推荐指数
2
解决办法
3万
查看次数

Internet Explorer中的DOM Level 3 XPath

我刚安装IE10在我的Windows 7,而且我发现,即使我很高兴,从AJAX请求个XML现在可以兼容DOM文档,就像一个相当基本的功能document.evaluate仍然不支持.

更糟糕的是,由于这些个XML是不是定制的微软IXMLDocument对象,节点不支持selectNodesselectSingleNode了.最后,似乎IE10不支持DOM Level 3 XPath或MSXML Xpath.

说真的,微软?有什么我想念的吗?

当然,我可以使用querySelectorquerySelectorAll,但我不想失去相当多的向后兼容性.

否则,仍然可以使用此行请求MSXML文档

try {xhr.responseType = "msxml-document";} catch(e) {}
Run Code Online (Sandbox Code Playgroud)

如规定在这里,但我认为这将是很好对付,最后,在IE标准DOM文档了.

那么,有没有办法在IE10中使用带有标准DOM文档的XPath?

更新2013年6月26日 IE11尚未稳定,但仍然不支持document.evaluate.如果它不支持它在稳定的版本,我怀疑它会永远支持它.毋庸置疑,这是荒谬的.

我知道你可以在DOM节点中使用querySelector/ All,但它在IE9及更低版本中不受支持,这仍然是非常常用的,无论如何XPath比选择器更强大.

幸运的是(如果可以这么说),你仍然可以设置xhr.responseType = "msxml-document".有那么一刻,我担心你再也不能那样做了......

更新23/11/2013 IE11现在稳定,但遗憾的是,它不支持document.evaluate.随着重量级XML文档在Web应用程序中越来越少地使用JSON或其他光表示法格式,这变得不那么成问题了,但仍然如此.

设置responseType属性仍然提供遗留的XML文档,所以我猜没有丢失.不过,我不知道IE12是否会成立.

更新15/8/2015现在听起来很荒谬,但Edge现在支持document.evaluate.就在(几乎)一切都切换到JSON进行数据交换时.嗯,迟到总比没有好,我想.

internet-explorer xpath msxml xmldom dom3

32
推荐指数
2
解决办法
2万
查看次数

被选中的选项被破坏还是......?

注意:这个问题与Knockout.js无关,但它取决于元素的selectedOptions属性<select>.这是参考:

http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#dom-select-selectedoptions

我认为这是Javascript开发人员的一个很好的功能.支持非常有限,但无论如何都在增长.Chrome,Opera和Safari应该已经支持它了.

问题是我无法弄清楚它是如何工作的.行为应该非常简单,产生所选选项的实时集合,但结果并非如此.您可以想象selectedOptions每次用户选择一个选项时都会进行更改,对吗?错误.我准备了一个测试用例:

http://jsfiddle.net/f39cC/5/

在这个例子中,Opera 11.64 总是返回所选择的第一个值,无论你做什么,而Chrome 21 dev和19 stable有一个奇怪的行为.执行以下步骤:

  1. 选择"一个".在输出和控制台中,您可以获得"One",如预期的那样.
  2. 使用Ctrl也选择"Two".在控制台中你得到"一,二",在输出中它仍然是"一".
  3. 也选择'三'.在控制台中它是"一,二,三",在输出中它是"一,二".
  4. 现在只选择"两个".在控制台中,你得到"Two",输出"Two ,,"(注意两个逗号).

但是,如果您注释掉该console.log行,则始终可以获得正确的输出.你可以在控制台和产量预期的行为,如果你换了两个指令,或者如果你的值存储在一个分隔的字符串,如本:

http://jsfiddle.net/f39cC/2/

那么,我错过了什么selectedOptions吗?依赖这个属性是否为时尚早,可能有一个错误的实现?是否console.log在Chrome中创建了该问题?有什么我不知道HTMLCollection的吗?

我没有安装Safari,有人可以检查一下它的行为吗?

UPDATE 18/2/2013:当事情发生了变化,我不知道,但两者的Chrome 24.0.1312.57和Opera 12.14,似乎现在的工作很好.Firefox 18.0.2和Internet Explorer 10仍然必须实现该属性.

更新2013年 9月17日:Firefox 24和IE 11预览仍然需要支持该属性.这是Firefox和IE8-11的简单解决方法:

Object.defineProperty(HTMLSelectElement.prototype, "selectedOptions", {
    get: (function() {
        try {
            document.querySelector(":checked");
            return function() {
                return this.querySelectorAll(":checked");
            };
        } catch (e) {
            return function() {
                if (!this.multiple) {
                    return this.selectedIndex >= 0
                            ? [this.options[this.selectedIndex]] : …
Run Code Online (Sandbox Code Playgroud)

javascript

23
推荐指数
1
解决办法
7781
查看次数

基于背景图像反转文本

是否有可能只用CSS/CSS3或javascript获得这样的东西?但没有文字图片.

在此输入图像描述

html javascript css

8
推荐指数
1
解决办法
1926
查看次数

PHP - 检查FTP服务器上是否存在没有SIZE支持的文件

是的,我知道,很难相信这些FTP服务器仍然存在,但它们确实存在.IBM iSeries机器运行此类服务器.

我已经有涉及一个答案ftp_nlistin_array,但正如一些你可能已经猜到了,这是缓慢的,当一个目录中包含了大量的项目.

由于缺乏对SIZE的支持,fopen在读取模式下使用时总是会失败(请记住xFTP包装器不支持),而ftp_size总是返回-1(预期)并且file_exists总是返回false(可能因为它在内部使用SIZE?).

  • ftp_get并且ftp_fget做到这一点,但是如果它存在,他们会下载整个文件.不是很好.一种可能的解决方案是使用ftp_fget传递仅在读取模式下打开的文件的处理程序,并捕获引发的警告.当文件不存在时它会有所不同,但这个解决方案感觉粗鲁,我真的不知道它是否可行(也许有人可以给出一个例子).

  • 另一种解决方案使用ftp_nb_get/ ftp_nb_fget来尝试检索文件.如果函数返回0(FTP_FAILED),则该文件可能不存在.我仍然需要处理一个临时的本地文件,如果FTP_MOREDATA返回(或者无法发出其他FTP命令),它很难关闭并重新打开连接 .

你对此有什么想法吗?

php ftp

8
推荐指数
1
解决办法
6931
查看次数

使用Open/LibreOffice开始使用UNO和Java

我刚刚开始使用LibreOffice的4.0.1 UNO SDK开发一个Java项目,aaaand ...我在开始时几乎陷入困境.如果我使用OpenOffice.org而不是LibreOffice,我认为同样适用,所以任何帮助都表示赞赏.

我正在使用Eclipse Juno 4.2,我创建了一个类似"Hello World"的项目.我将/program目录添加到类路径(添加为外部类文件夹),并在此行代码的开头

XComponentContext ctx = Bootstrap.bootstrap();
Run Code Online (Sandbox Code Playgroud)

UnsatisfiedLinkError使用以下堆栈跟踪抛出异常:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no jpipe in java.library.path
    at java.lang.ClassLoader.loadLibrary(Unknown Source)
    at java.lang.Runtime.loadLibrary0(Unknown Source)
    at java.lang.System.loadLibrary(Unknown Source)
    at com.sun.star.lib.util.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:50)
    at com.sun.star.lib.connections.pipe.PipeConnection.<clinit>(PipeConnection.java:48)
    at com.sun.star.lib.connections.pipe.pipeConnector.connect(pipeConnector.java:110)
    at com.sun.star.comp.connections.Connector.connect(Connector.java:114)
    at com.sun.star.comp.urlresolver.UrlResolver$_UrlResolver.resolve(UrlResolver.java:108)
    at com.sun.star.comp.helper.Bootstrap.bootstrap(Bootstrap.java:301)
    at xx.test.unotest.UnoTest.main(UnoTest.java:16)
Run Code Online (Sandbox Code Playgroud)

甚至try/catch围绕指令,但它没有被触发.

关于开始使用UNO,我找不到合适的文档,所以我不知道出了什么问题.安装SDK并配置环境变量.

我错过了什么吗?

编辑:我使用Windows 7 64位.也许这与问题有关.

java eclipse openoffice.org uno libreoffice

7
推荐指数
1
解决办法
6194
查看次数

ServiceLoader.next导致NoClassDefFoundError

我问,因为我完全知道我做了正确的事情.我正在使用Eclipse进行Web项目.我们在包中称它为WebProject(duh)com.web.project.

我希望WebProject在运行时加载JAR插件,所以我想我可以利用它java.util.ServiceLoader.所以我com.web.project.WebProjectPlugin在WebProject项目中创建了一个接口,其中包含插件必须实现的所有方法.

然后我创建了项目PluginProject,在其Build路径中将WebProbject/build/classes添加为类文件夹:

package com.web.project.plugin;

import com.web.project.WebProjectPlugin;

public class TestPlugin implements WebProjectPlugin {
    // Implementation of the interface methods...
}
Run Code Online (Sandbox Code Playgroud)

然后我在插件项目中创建了一个META-INF/services文件夹,将文本文件com.web.project.WebProjectPlugin放在里面,包含唯一的行"com.web.project.plugin.TestPlugin".

我导出了JAR文件,检出了添加的build/classes文件夹并将其放在硬盘中的某个位置.当WebProject启动时,它会执行以下操作:

File[] jlist = pluginsDir.listFiles(new FileFilter() {
    public boolean accept(File file) {
        return file.getPath().toLowerCase().endsWith(".jar");
    }
});
URL[] urls = new URL[jlist.length];
for (int i = 0; i < jlist.length; i++)
    urls[i] = jlist[i].toURI().toURL();
URLClassLoader ucl = new URLClassLoader(urls);

ServiceLoader<WebProjectPlugin> srvl =
    ServiceLoader.load(WebProjectPlugin.class, ucl);
Iterator<WebProjectPlugin> iter = srvl.iterator();
while (iter.hasNext()) …
Run Code Online (Sandbox Code Playgroud)

java noclassdeffounderror serviceloader

7
推荐指数
1
解决办法
796
查看次数

从span的innerHTML获取`selectionStart`

我有一个自己的文本编辑器,可以让你改变一个textarea元素的部分.我想调整它以使用span元素.我对跨度没有特别的依恋.目标只是让某人编辑html而不是textarea.我在IE中工作正常但是遇到了Mozilla的一些问题.

因为我使用的是span而不是表单输入,所以我使用的是innerHTML代替值.但是,我似乎无法获得selectionStartselectionEnd函数innerHTML相反的工作value.

这是textarea代码工作正常....

HTML

<textarea id="textarea>Some text goes here</textarea><a href="javascript:void() onclick="editText">edit</a>
Run Code Online (Sandbox Code Playgroud)

JS

function editText() {
    var len = displaytext.value.length; 
    var start = displaytext.selectionStart; 
    var end = displaytext.selectionEnd; 
    var sel = displaytext.value.substring(start, end); returns selection ok
    alert(sel);
}
Run Code Online (Sandbox Code Playgroud)

但是,以下适应不限制选择的开始和结束.

HTML

<span id="textarea>Some text goes here</span><a href="javascript:void() onclick="editText">edit</a>
Run Code Online (Sandbox Code Playgroud)

JS

function editText() {
    var len = displaytext.innerHTML.length; //works ok
    var start = displaytext.selectionStart; //does not seem to work
    var …
Run Code Online (Sandbox Code Playgroud)

javascript innerhtml

6
推荐指数
1
解决办法
2005
查看次数