小编Ale*_*lex的帖子

检查是否有任何祖先使用jQuery的类

有没有办法在jQuery中检查是否父,祖父,曾祖父有一个类.

我有一个标记结构让我在代码中做了这样的事情:

$(elem).parent().parent().parent().parent().hasClass('left')
Run Code Online (Sandbox Code Playgroud)

但是,为了代码可读性,我想避免这种事情.有没有办法说"任何父母/祖父母/曾祖父母都有这门课程"?

我正在使用jQuery 1.7.2.

html javascript jquery jquery-selectors jquery-1.7

140
推荐指数
3
解决办法
11万
查看次数

如何为所有使用从当前位置开始的路线打开谷歌地图的移动设备创建一个链接,指定给定地点?

我宁愿认为这不会那么难以找到,但是看起来很难找到一个很棒的跨设备文章,就像你期望的那样.

我想创建一个链接,打开移动设备的浏览器并浏览谷歌地图或打开地图应用程序(Apple地图或谷歌地图)并直接启动路线,即:从当前位置开始,在给定点结束(纬度/经度).

我可以测试两个设备(在browserstack旁边),Android和iPhone.

以下链接仅适用于Android:

<a href="http://maps.google.com/maps?daddr=lat,long&amp;ll=">Take me there!</a>
Run Code Online (Sandbox Code Playgroud)

点击iPhone Chrome浏览器中的此链接,奇怪地在桌面版中打开谷歌地图,并在移动应用上播放广告...

这只适用于iOS,打开Apple Maps,要求我输入一个起始位置(我可以选择"当前位置")并启动route =所需行为.在Android上单击此链接完全失败:

<a href="maps://maps.google.com/maps?daddr=lat,long&amp;ll=">Take me there!</a>

注意maps:// protocol.

是否有一种优雅的交叉设备方式来创建这样的链接?一个适用于所有主流手机的链接?

谢谢

更新:找到解决方案(有点)

这就是我想出来的.这不是我想象的,尽管它正在发挥作用.

var ua = navigator.userAgent.toLowerCase(),
    plat = navigator.platform,
    protocol = '',
    a,
    href;

$.browser.device = ua.match(/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera/i) ? ua.match(/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera/i)[0] : false;


if ($.browser.device) {
    switch($.browser.device) {
        case 'iphone':
        case 'ipad':
        case 'ipod':
            function iOSversion() {
              if (/iP(hone|od|ad)/.test(navigator.platform)) {
                // supports iOS 2.0 and later: <http://bit. ly/TJjs1V>
                var v = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/);
                return [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3] || …
Run Code Online (Sandbox Code Playgroud)

html mobile android google-maps ios

80
推荐指数
7
解决办法
13万
查看次数

我应该使用iframe而不是ajax吗?

我们正在构建一个带有音频播放器的Drupal站点,该站点应该在您浏览页面时继续播放(类似于soundcloud).

目前我们正在<a>使用ajax 加载clicked 的网站并将html注入页面并使用history.js来操作该位置.

但是有一个主要的缺点:

由于新加载的页面上可能有不同的css和js,我们必须将当前脚本,样式和链接元素与ajax响应文本(丑陋的正则表达式)进行比较,并且只添加新的但不存在的元素.通过这样做,加载另一个页面一旦执行脚本就不会删除/删除/撤消.这可能会成为一个性能问题(反正是针对标记的正则表达式).

使用iframe可以解决这个问题和其他问题:

首次单击站点上的链接时,页面内容将替换为仅加载页面的iframe.音频播放器位于原始dom中,即在iframe之外.单击iframe内的链接可以在历史API中捕获并使用.

所以,虽然我从未想过我会这么认为:我认为使用iframe可能是更好的选择,不是吗?

PS:我的主要问题是我无法控制网站上的不同页面有不同的脚本,样式确实没问题.如果网站上只有一个巨大的静态js和css,我没有遇到任何问题.

更新

除了在iOS中,iframe解决方案工作正常.iframes就像地狱一样.不过,我认为我们将采用iframe解决方案.

ajax iframe jquery drupal html5-history

10
推荐指数
1
解决办法
1238
查看次数

Javascript在数组中添加N次相同的元素

假设我有这样的地图:

var map = {"a" : 100, "b" : 200, "c": 700};
Run Code Online (Sandbox Code Playgroud)

我想要一个包含"a"100次,"b"200次和"c"700次的数组:

map_array = [a, a, a, a, ... a, b, b, b, ... b, c, c, c, ... c]
Run Code Online (Sandbox Code Playgroud)

简单的解决方案是循环频率时间并推入数组:

var map_array = []
for(key in map)
{
    for(var i=1; i <= map[key] ; i++)
    {
       map_array.push(key)
    }
}
Run Code Online (Sandbox Code Playgroud)

但这显然需要时间来处理大数据的过程,我们是否可以努力使上述功能更有效?

javascript arrays performance

7
推荐指数
2
解决办法
4119
查看次数

如何使用终端将mbox文件拆分为n-MB大块?

所以我在SO上阅读了这个问题,但它对我没有任何帮助.我想将Gmail生成的mbox文件导入另一个webmail服务,但问题是每次导入只允许40 MB的大文件.

所以我不得不将mbox文件拆分为max.40 MB大文件并一个接一个地导入它们.你会怎么做?

我最初的想法是使用另一个脚本(formail)将每个邮件保存为单个文件,然后运行脚本将它们组合到40 MB的大文件中,但我仍然不知道如何使用终端执行此操作.

我也查看了split命令,但我担心它会切断邮件.谢谢你的帮助!

bash terminal mbox

7
推荐指数
2
解决办法
5343
查看次数

非常奇怪的行为:当脚本被阻止然后被允许时,IE11似乎会创建一个不可见的选项卡 - 如何修复它?

IE处于最佳状态:

有一个带有HTML文档的USB记忆棒.当用户在IE11中打开它并且脚本被阻止时,会出现一个提示,允许这些脚本运行.

在此输入图像描述

当您单击允许时,该站点似乎重新加载,但它看起来像一个新选项卡打开/关闭.

启用JS后,您将被重定向到该站点的在线版本.

现在,在网站上有一个视频,在10秒后开始自动播放.但是在IE11中,几秒钟后同一个视频开始并行播放,所以你在这里发出两次声音.

当您检查DOM并删除<video>标记(只有1)时,一个视频停止播放.后来开始的那个继续玩.即使我访问另一个网站,视频仍然在播放.

只有关闭浏览器才会停止播放视频.

当我允许直接执行脚本时不会发生此行为.

使用video.js和jQuery.

有任何想法吗?

javascript activex html5-video video.js internet-explorer-11

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

如何在jQuery中恢复刷新div的滚动位置?

我有一个非常大的div,使页面垂直和水平滚动条.

每隔几分钟,我希望刷新div的内容,所以我使用jquery get将div内容重新加载到div中.

问题是我不希望屏幕上用户正在看的地方被更改,我希望div重新加载,但是用户应该仍然看着div中的相同位置(意味着div应该不回滚到(0,0).

覆盖HTML与$("#mainwrapper").html的(数据)div时什么有时会发生;中,DIV是暂时空的,所以它收缩,然后再填充,但现在的用户是在(0,0 )

希望这是有道理的.

html jquery get

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

有人可以解释这个css边际行为吗?

我的一个朋友在这个简单的html/css任务中遇到了问题:http://jsfiddle.net/kaHzY/6/

问题是,.headlinemargin-top被向下推#main div,虽然它应该直接跟随nav之间没有任何空间.

添加div .innerpadding1px解决了这个问题.在.headline仍有余量,但并没有推下来#main div了.

我知道这种行为,但我无法解释.你怎么解释这一点,特别是对那些正在学习CSS的人?为什么它表现得那样?

谢谢

css margin bounds

4
推荐指数
1
解决办法
274
查看次数

如何在 gmail smtp 身份验证中使用用户别名?

我正在使用 Drupal 7 和 SMTP 模块。Gmail(工作应用)帐户使用两步验证和应用密码,以便网站可以使用 SMTP 进行身份验证。到目前为止还好。

问题是用户帐户,说不johndoe@domain.com应该是发件人地址,而是info@domain.com应该。info 已经是johndoe.

我们必须使用johndoe来实际进行身份验证,别名对此不起作用。但是,尽管调试info@domain.com中的发件人地址是,但在我的邮件应用程序中,发件人似乎仍然是johndoe@domain.com

有任何想法吗?

编辑:我读到 Google SMTP 服务会使用用户帐户覆盖发件人地址。即使发件人地址是现有别名?

这真的很奇怪。

email gmail smtp drupal-7

4
推荐指数
1
解决办法
4807
查看次数

给定一个对象列表,如何只返回所有对象中存在的属性?

我有几个对象:

var a = { "abc": {}, "def": {}, "ghi": {} };
var b = { "abc": {}, "ghi": {}, "jkl": {}, "mno": {} };
var c = { "abc": {}, "ghi": {}, "xyz": {}, "mno": {} };
Run Code Online (Sandbox Code Playgroud)

我想知道如何获取所有属性中存在的属性名称:

var d = getOmniPresentProperties(a, b, c);

function getOmniPresentProperties() {
  // black magic?
}
Run Code Online (Sandbox Code Playgroud)

所以d应该是["abc", "ghi"]

要比较的参数/对象的数量可能会有所不同,所以我不确定如何处理.有任何想法吗?

javascript properties object

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