小编log*_*lic的帖子

使用固定宽度视口元标记时,Android会忽略最大比例

我有一个固定宽度的网页(640像素宽).我希望这个页面缩小到移动设备的宽度.但是,如果设备的原始宽度大于640像素,我不希望它被拉伸.看起来很简单:

<meta name="viewport" content="width=640, maximum-scale=1.0" />
Run Code Online (Sandbox Code Playgroud)

这在iPad/iPhone中可以正常使用.但是,在Android平板电脑上(例如在横向模式下),内容会按比例放大以适合显示.换句话说,Android只是忽略了maximum-scale = 1.您可以在此处查看包含此问题的示例页面.为了完整起见,这里有来源:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Test Viewport</title>
    <meta name="viewport" content="width=640, maximum-scale=1.0" />
    <style>
      div.bar {
        position: absolute;
        width: 636px;
        height: 50px;
        background-color: yellow;
        border: 2px solid black;
        left: 50%;
        margin-left: -320px;
      }
    </style>
  </head>
  <body>
    <div class="bar">
    </div>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我一直在使用视口元标记进行大量的研究和实验.我已经阅读了关于这个主题的所有内容,但没有看到这个看似基本的问题.

两个笔记:

  • 这不是目标密度dpi问题

  • 在这种情况下,将视口宽度设置为设备宽度没有帮助,因为内容宽度是固定的并且大于(例如)手机的纵向设备宽度.如果我设置width = device-width,页面将不会自动缩小以适合手机..

非常感谢.

mobile html5 android viewport ios

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

parentNode在Javascript内部关闭时丢失了吗?Chrome bug?

当我在Chrome中执行以下测试HTML页面时,我在调试控制台中看到以下内容:

Has parent? true
Has parent? false
Run Code Online (Sandbox Code Playgroud)

我是否正确地认为这是一个Chrome错误(在其他浏览器中不会发生),或者Chrome是否因为某些原因而有权执行此操作?它导致了我的一个网络应用程序中的错误,我最终将此片段隔离出来以重现核心问题.

这是测试页面:

<!DOCTYPE HTML>
<html>
  <head>
    <meta charset="UTF-8">
    <title></title>
  </head>
  <body class="">
      
      
      <script>
        function testDoodle() {
          var testParentEl = document.createElement('div');
          var testChildEl  = testParentEl.appendChild(document.createElement('div'));
          
          document.body.innerHTML+=('Has parent? ' + !!testChildEl.parentNode+'<br>');
          console.log('Has parent? ' + !!testChildEl.parentNode);
          
          setTimeout(function() {
              document.body.innerHTML+=('Has parent? ' + !!testChildEl.parentNode+'<br>');
              console.log('Has parent? ' + !!testChildEl.parentNode);
          },
          2000);
          return;
        }
        testDoodle();
      </script>

  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

编辑:我应该提到我正在使用Chrome 49.0.2623.87 m(64位)在Windows 7上进行测试.还可以使用Chrome 49重新编写OSX 10.11.2.

另外,我应该提到有时它显示真/真,有时真/假.您可能需要重新加载页面几次才能看到问题.我不确定,但调试工具(控制台)也可能需要打开.

非常感谢.

html javascript closures garbage-collection google-chrome

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

从多线程C++插件回调NodeJS Javascript函数

我有一个多线程C++插件,它做了一些后台处理,我需要定期回调我在NodeJS服务器上编写的Javascript函数.

我理解这涉及到使用uv_async_send(),因为它需要在主线程中执行,但到目前为止我还没有弄清楚如何去做.

有没有一个我错过的简单例子?

javascript c++ multithreading v8 node.js

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

如何使用for循环使用反向迭代器调用erase

关于这里提供的答案:如何使用反向迭代器调用erase

++it当使用-std = c ++ 11在g ++ 4.8.4中编译时,以下结果导致分段错误(on ).我误解了答案吗?

  std::map<int,int> testmap;
  testmap[0] = 1;
  for(auto it=testmap.rbegin(); it!=testmap.rend(); ++it) {
    testmap.erase( std::next(it).base() );
  }
Run Code Online (Sandbox Code Playgroud)

c++ c++11

6
推荐指数
2
解决办法
2121
查看次数

在Chrome中停止第二个webrtc流会中断所有webrtc流

如果我在Chrome 55中打开两个单独的WebRTC本地视频流,并且我停止并启动第二个流三次,则第一个流中断(此后不再打开流).

https://jsfiddle.net/kqjmt7a0/1/

要轻松复制,请在Chrome 55中运行上面的小提琴,然后单击"重新启动vid2"三次.第三次单击它时,您会注意到:

  • 第一个视频帧(点击未触及!)冻结
  • 第二个视频帧不再播放
  • 没有错误(getUserMedia()返回一个看起来很好的新本地流,除了它不起作用)

具体来说,调用MediaStreamTrack :: stop()会搞乱Chrome(最终).注释掉以下内容可以解决问题:

  var tracks = stream.getTracks();
  for(var i = 0; i < tracks.length; ++i) {
    tracks[i].stop();
  }
Run Code Online (Sandbox Code Playgroud)

我在这里做错了什么,或者这只是一个Chrome错误?

笔记:

  • 这只是为了在Chrome中正常工作
  • 这在Firefox中运行得很好
  • 在Chrome 55.0.2883.87(Mac和Windows)中重新编辑

更新:

在进一步解决这个问题后,我更确信它只是一个Chrome bug.我输入了以下内容:

https://bugs.chromium.org/p/chromium/issues/detail?id=674965

我仍然希望得到关于我的代码是否有任何问题的反馈,这些代码可能会让问题变得棘手.

javascript google-chrome webrtc

5
推荐指数
0
解决办法
410
查看次数

将任意Javascript数据对象传递给Node.js C++插件

我有一个使用Nan用C++编写的Node.js插件.工作非常好.但是,我无法弄清楚如何让我的Node Javascript代码将任意数据对象(例如{attr1:42, attr2:'hi', attr3:[5,4,3,2,1]})传递给C++插件.

到目前为止,我通过调用JSON.stringify()我的数据对象然后在C++端解析字符串化的JSON来解决这个问题.

理想情况下,我想避免复制数据,只是获取对我可以访问的数据对象的引用,或者至少本地复制它并避免字符串化/解析...

任何帮助,将不胜感激!

javascript c++ json node.js node.js-nan

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

JavaScript 中的 3D 三边测量

我正在尝试使用https://github.com/gheja/trilateration.js在 Javascript 中进行 3D 三边测量 ,它似乎正在工作。然而,某些简单的情况应该会产生解决方案,但事实并非如此。例如:

var p1 = {x:69, y:0,  r:69, z:0}
var p2 = {x:0,  y:50, r:50, z:0};
var p3 = {x:0,  y:80, r:80, z:0};
trilaterate(p1, p2, p3, false)
Run Code Online (Sandbox Code Playgroud)

这似乎是一个极其简单的例子,应该在 x:0,y:0 处产生一个解决方案,但该函数却告诉我没有解决方案。我是否误解了三边测量或函数中存在错误?

任何帮助,将不胜感激。

javascript trilateration

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

Nodejs&aws-sdk:同时访问多个区域?

目前在Node中设置我的S3访问权限:

var AWS = require('aws-sdk');
AWS.config.region       = 'us-west-1';
AWS.config.credentials  = new AWS.SharedIniFileCredentials({profile: 'default'});
var s3 = new AWS.S3();
Run Code Online (Sandbox Code Playgroud)

现在我也想访问SES.不幸的是,SES在us-west-1上不存在,所以我不得不在不同的地区设置SES.

我该怎么办?如果我更改AWS.config,会影响我之前实例化的s3吗?

javascript amazon-s3 amazon-web-services node.js amazon-ses

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

iframe 中的 Chrome 第 3 方 cookie(SameSite=None;安全)

就像其他人一样,我正在努力支持 Chrome 中即将到来的第 3 方 cookie 更改。我的用户(其他域上的其他网站)将我的网页包含在 iframe 中。在我的页面中,我设置了一个 cookie(只有 iframe 需要在该父网站的上下文中看到该 cookie,因此实际上不是第 3 方 cookie)。

这在 Firefox 中工作正常(可能已经禁用了第 3 方 cookie),但是当在隐身模式下使用 Chrome 时,禁用第 3 方 cookie,我无法设置我的 cookie。

下面是一个例子。如果您重新加载父级,cookie 就会丢失(实际上它永远不会被设置,即使在重新加载之前也是如此)。Chrome 开发工具中没有警告,但您可以在“应用程序”选项卡中看到 cookie 从未被设置。

有什么想法为什么这在 Firefox 中有效,但在禁用 3rd party cookie 的 Chrome 隐身模式中无效?有办法让这个工作吗?

父页面(domain1.com):

<html>
    <head>
        <style>
            iframe.myframe {
                width: 800px;
                height: 500px;
            }
        </style>
    </head>
    <body>
        <iframe class="myframe" src="https://domain2.com/my_thing.html"/>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

子页面(domain2.com):

<html>
    <head>
        <style> body{ background: blue; } </style>
    </head>
    <body>
        <script>
            let num = getCookie('num');
            console.log('Pre-change: '+num);
            num …
Run Code Online (Sandbox Code Playgroud)

cookies google-chrome samesite third-party-cookies

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