小编Gag*_*ags的帖子

JavaScript new Date()在IE,Safari中返回NaN

我使用highcharts绘制图表并使用new Date()函数解析日期.在Chrome和FF中,日期解析正常.

但在IE和Safari中,我得到的是NaN和无效的日期格式.

下面是我从(element.x)数组中的后端获得的数据

2016, 04,05
2016, 04,06
2016, 04,07
2016, 04,08
2016, 04,09
2016, 04,10
Run Code Online (Sandbox Code Playgroud)

现在,我将它转换为JavaScript中的Date对象,如下所示:

//Loop starts
var xAxis = new Date(element.x);
datas.push([Date.UTC(xAxis.getUTCFullYear(),xAxis.getUTCMonth(), xAxis.getUTCDate())]);
//Loop ends
Run Code Online (Sandbox Code Playgroud)

现在,此操作在IE中返回NaN但在chrome中工作得非常好,如下所示:

Array([0]=>140004454) - Unix Time stamp i get
Run Code Online (Sandbox Code Playgroud)

IE

Array([0]=>NaN)
Run Code Online (Sandbox Code Playgroud)

javascript jquery internet-explorer date highcharts

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

Twig不呈现HTML标记

我使用twig作为模板引擎,我在显示HTML数据时遇到问题.

我搜索了SO并获得了以下解决方案

{% autoescape true %} {{ detailArticle.artdesc|raw}} {% endautoescape %}
Run Code Online (Sandbox Code Playgroud)

这个表达式正在我的localhost上运行,但在cPanel上出现问题是Live服务器.

它不渲染输出.它显示为

<span style="font-size: 12pt; font-family: 'Times New Roman', serif">.. so on
Run Code Online (Sandbox Code Playgroud)

使用的Twig版本是

"twig/twig":"~1.16",

请建议

php symfony twig

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

SQL注入:哪个语句可以阻止更好的SQL注入

我正在使用如下的PDO声明

select * from `admine_user` where `user_id` = ? and passw = ?
$resultfm1 = DB::instance()->prepare($query)->execute
(array($escapedid,$hashedpass))->fetchAll();
Run Code Online (Sandbox Code Playgroud)

我在考虑使用

select * from `admine_user` where `user_id` = :user and passw = :pwd
$resultfm1 = DB::instance()->prepare($query)->execute
(array(":user"=>$escapedid,":pwd"=>$hashedpass))->fetchAll();
Run Code Online (Sandbox Code Playgroud)

以上语句中哪些更好用,可以有效防止SQL注入,因为现在我无法使用 mysql_real_escape_string

php mysql pdo

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

使用"formvalidation.io"验证动态输入

我正在使用插件表单验证来验证表单.这个插件工作得很棒.
但我在验证动态生成的输入方面面临问题.

下面的代码用于动态生成输入字段

$("#countaccmp").change(function() {
  var selVal = $(this).val();
  $("#textboxDiv").html('');
  if(selVal > 0) {
    for(var i = 1; i<= selVal; i++) {
        $("#textboxDiv").append('<input type="text" name="accmp'+i+'" 
        id="accmp'+i+'" class="form-control " />');
    }
  }       
})
Run Code Online (Sandbox Code Playgroud)

我尝试使用插件进行验证,如下所示:

$('#form').formValidation({
       //--------- Plugin Validator Method -----------//
})
.on('change', '[name="countaccmp"]', function(e) {
        //---- Wrote validation here, It works(only on change) but form is getting submitted 
               even after error ----//
       $('.dynDiv').each(function(){
          var input = $(this).children('input');
          var dynField = 
           ($(this).find("input[name^='accmp']").attr('name'));

            if(input.val() == '' || input.val() == undefined){
                alert("Error"); …
Run Code Online (Sandbox Code Playgroud)

javascript jquery twitter-bootstrap formvalidation-plugin

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

调用未定义的方法Illuminate \ Database \ Schema \ MySqlBuilder :: defaultStringLength()

首先,我在

php artisan migrate
Run Code Online (Sandbox Code Playgroud)

SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

然后我发现了一个帖子laracasts来解决这个问题

use Illuminate\Support\Facades\Schema;

public function boot()
{
    Schema::defaultStringLength(191);
}
Run Code Online (Sandbox Code Playgroud)

添加完之后,当我运行

php artisan optimize
Run Code Online (Sandbox Code Playgroud)

然后我遇到新的错误如下

Call to undefined method Illuminate\Database\Schema\MySqlBuilder::defaultStringLength()

请协助摆脱所有这些错误。

php laravel-5 artisan artisan-migrate

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

多个音频,当当前正在使用javascript播放时自动停止其他

audioplayer.js在 html5 页面上有超过 5 个音频播放器。

有没有人在 js 中有一个简单的脚本来在当前播放器播放时暂停所有其他播放器?

jQuery:

$( function(){
   $("audio").audioPlayer();
});
Run Code Online (Sandbox Code Playgroud)

图书馆

https://osvaldas.info/examples/audio-player-responsive-and-touch-friendly/audioplayer.js
Run Code Online (Sandbox Code Playgroud)

我试过如下

window.player = $('audio')[0];
$('.audioplayer-playpause').click(function () {
    if (player.paused) {
        player.play();
    } else {
        player.pause();
    }
});
Run Code Online (Sandbox Code Playgroud)

我制作了一个 jsFiddle 只是为了简化事情,下面是链接:

音频播放器的 JS Fiddle

html javascript audio jquery audio-player

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

当用户离开应用程序时删除会话存储

我想在用户关闭我的应用程序时执行以下代码。

ngOnDestroy(): void {
    sessionStorage.clear();
}
Run Code Online (Sandbox Code Playgroud)

简而言之,一旦用户离开我的应用程序,我想清除我的应用程序的 sessionStorage,但当用户刷新应用程序时,数据将被保留。

当应用程序关闭时 OnDestroy 似乎不会触发。

我也试过下面的代码

ngOnInit() {
   window.onbeforeunload = function () {
     sessionStorage.clear();
     return ''
   }
}
Run Code Online (Sandbox Code Playgroud)

我知道这不是正确的地方,但刷新时也有清晰的数据:(而且这不适用于每个浏览器。

我可以在哪里放置此代码以获得我正在寻找的行为,或者是否有更好的方法来完成我想要完成的任务?

session-storage angular2-services angular

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

Angular2 单元测试鼠标事件

我想测试一种有助于在模态窗口容器外部关闭时关闭模态窗口的方法。

组件方法

public hide(): void {
    this.visibleAnimate = false;
    setTimeout(() => { this.visible = false; }, 200);
  }

public onModalClicked(event: MouseEvent): void {
    if ((<HTMLElement>event.target).classList.contains('dialog-container')) {
      this.hide();
    }
  }
Run Code Online (Sandbox Code Playgroud)

单元测试

it('should call hide method', fakeAsync(() => {
    component.hide();
    fixture.detectChanges();
    fixture.whenStable().then(() => {
      expect(component.visible).toEqual(false);
      tick(200);
      expect(component.visibleAnimate).toEqual(false);
    });
  }));



it('should call onModalClicked()', () => {
    const mockEvent = new Event('click'); --> Error
    component.onModalClicked(mockEvent);
    console.log(component.visible);
  });
Run Code Online (Sandbox Code Playgroud)

我的单元测试在hide()方法上运行良好,请让我知道我是否以正确的方式进行。

但我真的很困惑如何测试onModalClicked()方法,因为它以MouseEvent作为参数。

在我的单元测试方法中,发生 Event 和 MouseEvent 不匹配错误,这很明显,但如何覆盖此方法?

unit-testing karma-jasmine angular2-testing angular

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