小编Cha*_*lie的帖子

JavaScript - 如何知道元素是否为空?

我正在制作一个井字游戏。我的问题是我的代码允许重写 X 或 O,即使其中一个正方形已经包含 X 或 O。我正在使用 if 语句根据每次增加 1 的数字变量编写 X 或 O。我想添加另一个条件,如果我的标签为空,则只允许写入 X 或 O。我该怎么做呢?。注意:请只使用 javascript,因为我还没有开始学习 jQuery。提前致谢!

JS

var tds = document.querySelectorAll("td");
var player = 1;
var str = "";

for (var i = 0; i < tds.length; i++) {
  tds[i].addEventListener("click", function(){
     if( player % 2 === 0 && tds[i] !== "<td>X</td>"  && tds[i] !==
     "<td>O</td>"){
       this.textContent = "O";
     } else if (player % 2 !== 0 && tds[i] === "" ) {
       this.textContent = "X";
     }
   player++; …
Run Code Online (Sandbox Code Playgroud)

html javascript dom

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

为什么我不能在 Internet Explorer 中向 window.external 对象添加方法,但可以在其他浏览器上工作

以下javascript代码适用于 Chrome 和 Firefox,但不适用于 Internet Explorer。

window.external.vals = function(){alert("asdf");}
Run Code Online (Sandbox Code Playgroud) 我已经在相应的控制台上尝试过,其他所有浏览器都可以正常工作,但 IE 会引发以下错误

“对象不支持此属性或方法”

任何的想法 ?

javascript internet-explorer external

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

更改 html 内容和 url,无需重新加载页面

我看到许多网站(例如gitHub)更改了 html 内容并且URL没有刷新页面。
我找到了一种可能的方法来做到这一点HTML Histroy API
这是代码。
超文本标记语言

 <div class="container">
 <div class="row">
    <ul class="nav navbar-nav">
        <li><a href="home.html" class="historyAPI">Home</a></li>
        <li><a href="about.html" class="historyAPI">About</a></li>
        <li><a href="contact.html" class="historyAPI">Contact</a></li>
    </ul>
 </div>
 <div class="row">
    <div class="col-md-6">
        <div class="well">
            Click on Links above to see history API usage using   <code>pushState</code> method.
        </div>
    </div>
    <div class="row">    
        <div class="jumbotron" id="contentHolder">
            <h1>Home!</h1>
            <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry.</p>
        </div>
    </div>
   </div>
  </div>  
Run Code Online (Sandbox Code Playgroud)

首页.html

 This is home page  
Run Code Online (Sandbox Code Playgroud)

关于.html …

html javascript html5-history

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

类型的东西返回对象而不是数组

x 是一个数组。

console.log(x)知道了

[ 'value' ]
Run Code Online (Sandbox Code Playgroud)

但是当我检查x的类型console.log(typeof x)时说它是一个对象。为什么?

javascript jquery

5
推荐指数
2
解决办法
484
查看次数

在不破坏第一个组件的情况下在 2 个组件之间路由转换?

搜索了一整天后,我被困住了,所以我想寻求帮助。

我怎样才能在 angular2 中实现这样的东西:http ://dfsq.github.io/ngView-animation-effects/app/#/page/1

我的意思是如何使用 Router 在 2 个页面之间无缝转换?我可以动画页面更改,但现在是这样的:

动画输入->第一页加载->动画输出->空路由器出口(因为组件被破坏) ->动画输入->第二页加载

但我想要:

动画输入->第一页加载->第一页动画输出->第二页动画输入->第二页加载->这里销毁第一页

任何帮助,将不胜感激 :)

angular2-routing angular

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

仅当图像存在于Angular中时显示图像元素

我有两个同级元素。一个是图像,另一个是div。我想显示image元素(如果image存在)和show div元素(如果image不存在)。我的元素看起来像

 <img ng-show="product.img" ng-src="{{product.img}}" />
 <div class="left margin-right-1 line-height-15" ng-hide="product.img">{{product.img}}</div>
Run Code Online (Sandbox Code Playgroud)

product.img导致类似/assets/images/prod.jpg。由于这是一个字符串,因此ng-show将始终为true,并且将显示image标签。因此,如果图像不存在,它将显示为残破图像。所以基本上我想要的是如果图像不存在,则隐藏图像标签并显示div,反之亦然。

我已经尝试过像

 $scope.imageExists = function(src) {
  var image = new Image();
  image.src = src;
  if (image.width == 0) {
      return false;
  } else {
      return true;
  }
}
Run Code Online (Sandbox Code Playgroud)

并更改了我的图片标签

 <img ng-show="product.img" ng-src="{{imageExists(product.img)}}" />
Run Code Online (Sandbox Code Playgroud)

但这非常昂贵。我每页有100种产品,当它遍历所有图像时,页面变得非常非常慢。

因此,如果图像存在与否,任何人都可以指导我显示和隐藏图像元素的最佳角度方法是什么。

html javascript image angularjs

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

JavaScript"缓存"与"内存"

如果您在Stackoverflow上搜索如何在JS中缓存变量,您将找到指向cookie或本地存储的答案.

另一方面,"缓存"这个词通常用作:"缓存数组的长度,这样我们就不必每次都计算它".

当然,我们不会在cookie或本地存储中缓存长度.我的问题是:

"缓存"长度的位置在哪里?它在记忆中吗?如果是这样,为什么我们使用"缓存"这个词?

javascript caching

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

下载window.print()生成的PDF

是否有JS解决方案可下载由生成的PDF window.print()?我不需要打开打印窗口,而只需下载PDF。

我尝试了其他插件,但是生成的PDF window.print()正是我需要的。任何想法如何实现相同?

javascript pdf pdf-generation

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

从PHP限制Javascript?

我正在努力实现一些我无法理解的东西.问题是,当记录特定用户时,我会在会话中存储用户并记录他.

在告诉我之前,我知道这不是最佳做法,但此页面的目的仅限于内部,并且不可能被黑客攻击,因为您只能在内部访问它.

无论如何,重点是表中有一些可编辑的字段,只能由管理员编辑,但只能由其他人看到.

为了实现可编辑的表,我使用了datatables库以及一些ajax和JQuery.

当记录的用户不是管理员而不是以下时,我想不出一种限制编辑的方法:

var logged = <?php echo $_SESSION['logged_user'];?>;
if (logged=='admin') {
    // action here
}
Run Code Online (Sandbox Code Playgroud)

你知道更好的方法还是更容易理解?非常感谢你!

javascript php

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

如何在Edge浏览器中打印背景图像和颜色

尽管诸如IE和FF之类的浏览器为用户提供了在打印中包含背景时进行设置的选项,但Edge在打印机设置中似乎没有此选项。

有没有办法可以通过代码或本机Edge JS命令激活此功能?

html javascript css printing microsoft-edge

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