我想让用户只需点击一下即可直接下载文件.然而,对于已知的模因类型,如HTML,音频,视频等,存在一个问题.理想情况下,我想触发音频/视频文件的下载提示.最后,我也想为HTML文档做这件事.主要思想是让用户轻松下载文件而不要求他们导航到上下文菜单.
例如,我认为那些对计算机及其主要功能并不熟悉的人.这些人肯定更喜欢比"另存为"更好的方式.
我之所以在寻找JavaScript解决方案,是因为只有在网站环境中才能使用PHP方法.每当您进入插件或注入的脚本上下文(即为Firefox,Chrome或Safari开发插件)时,您可能希望避免要求服务器端响应.
我试着用window.open()
和 实现这一点document.execCommand("saveAs",...
.它确实有效,虽然它很糟糕并且无法存档.
然后,我尝试了在每种情况下都不起作用的Downloadify.
是否有纯JavaScript,没有Ajax方式来触发下载提示,因此用户可以使用简单的左键单击直接下载文件?
<script type="text/javascript">
function validate() {
if (document.form.price.value.trim() === "") {
alert("Please enter a price");
document.form.price.focus();
return false;
}
if (document.form.price.value !== "") {
if (! (/^\d*(?:\.\d{0,2})?$/.test(document.form.price.value))) {
alert("Please enter a valid price");
document.form.price.focus();
return false;
}
}
return true;
}
</script>
<form action="" method="post" name="form" id="form" onsubmit="return validate(this);">
<input name="price" type="text" class="r2" />
<input name="price2" type="text" class="r2" />
<input name="price3" type="text" class="r2" />
<input name="price4" type="text" class="r2" />
<input name="price5" type="text" class="r2" />
...more....
<input name="price50" type="text" class="r2" />
Run Code Online (Sandbox Code Playgroud)
这个JavaScript代码工作正常,以验证字段"价格". …
我正在遵循android-studio-jni 指南并尝试使用 gradle 编译 C++ 本机代码。一切正常:我可以加载 JNI 函数、编写 C++ 类、编译、运行和调试。而且我不需要编写和维护Application.mk和Android.mk生成文件;它们似乎都由 gradle 隐式处理。只有一件事我不明白:如何从标准库中包含 C++ 头文件?
我想我一定在 gradle 脚本中遗漏了一些东西,但我找不到关于在这里添加什么的很好的参考。这是脚本:
android.ndk {
moduleName = "hello-android-jni"
// I tried adding the following, but nothing happens
stl = "stlport_static"
}
Run Code Online (Sandbox Code Playgroud)
屏幕截图显示所有标准标题都不可见。
我一直在尝试在 Windows 10 上构建 chromium,但在运行时遇到奇怪的错误,这似乎是由该模式引起的:
void CheckFreeLibrary(HMODULE module) {
BOOL result = ::FreeLibrary(module);
DCHECK(result);
}
Run Code Online (Sandbox Code Playgroud)
Chromium 启动几秒钟后会显示第一个错误。它是这样说的:
[5904:9192:0726/025753:FATAL:module_list.cc(18)] Check failed: result.
Backtrace:
base:debug:StackTrace:StackTrace [0x0000....] (e:\projects\clones\chromium\src\base\debug\stack_trace.cc) ...
Run Code Online (Sandbox Code Playgroud)
由于我无法复制粘贴整个堆栈,因此我将添加一个屏幕截图来说明这一切的感觉:
我成功构建了最后一个版本,或者至少看起来是成功的,因为使用构建说明中推荐的工具链进行编译时没有出现错误。
幸运的是,第一个错误不是模态的,之后可以浏览一下。然后,如果我将应用程序置于重负载状态(例如 Facebook 新闻源),它会突然以无声的方式停止响应。鼠标悬停效果将不再显示,重新加载页面将导致无限加载。当右键单击某些页面时,这种行为也可以重现(例如:谷歌的主页有时会这样做)。
对于默认配置无法“开箱即用”的解释是什么?如何解决这个问题?
PS:这个问题是对这个问题的补充: Windows chromium-browser fresh build stacktrace andonymous fatalErrors on runtime,如果它可以帮助了解问题的整体情况。
PS2.:我目前正在尝试从头开始重建,并进行这个微小的更改,看看效果是否更好。不过,大约 10 小时后我就能看到它(是的,在我当前的设置下构建是很痛苦的)。
void CheckFreeLibrary(HMODULE module) {
BOOL result = ::FreeLibrary(module);
if (!result) {
result = ::UnmapViewOfFile(module);
}
DCHECK(result);
}
Run Code Online (Sandbox Code Playgroud)
更新 - 2016/07/29
使用 CheckFreeLibrary 进行测试在调试中仍然失败,但我终于找到了解决构建中问题的方法。请参阅超级用户问题中的更新 3 。我所做的是将构建配置为发布模式通过gn args
. 显然,这几乎不可能进行调试,因此尚未找到有关其在调试模式下失败的原因的解决方案/解释。不过,现在已经很接近了。
更新2 …
我正在使用泛型方法来反序列化xml文档取决于包含.它试图反序化所有可能的案件.
这是我的代码片段:
private static Dictionary<Type, byte> getMessageDictionary() {
Dictionary<Type, byte> typesIO = new Dictionary<Type, byte>();
typesIO.Add(typeof (Type1), 1);
typesIO.Add(typeof (Type2), 11);
typesIO.Add(typeof (Type3), 12);
return typesIO;
}
public static object GetContainer(XmlDocument xd) {
foreach(KeyValuePair<Type, byte> item in getMessageDictionary()) {
try {
Type p = item.Key;
var z = Utils.XmlDeserialize<p> (xd.OuterXml);
return z;
} catch {
continue;
}
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
但编译器说p
无法找到类型或命名空间名称.我是否会错过using
指令或汇编参考?什么地方出了错?
c++ ×2
javascript ×2
android ×1
browser ×1
c# ×1
chromium ×1
download ×1
generics ×1
validation ×1
windows ×1
windows-10 ×1