小编Hiv*_*ve7的帖子

当软件包为最新版本时,如何修复NPM软件包Tar(具有任意文件覆盖的高度漏洞)?

我刚刚从NPM安装了Flickity,并在运行后得到一份NPM审核安全报告,npm audit指出我对软件包tar上的任意文件覆盖存在严重的漏洞问题,这是node-sass的依赖项,您可以在此处看到:

High......................... Arbitrary File Overwrite                                     
Package...................... tar                                                          
Patched in................... >=4.4.2                                                      
Dependency of................ node-sass [dev]                                              
Path......................... node-sass > node-gyp > tar                                   
More info.................... https://npmjs.com/advisories/803 
Run Code Online (Sandbox Code Playgroud)

运行npm audit fix并不能解决问题,因为该漏洞需要手动检查。更多信息链接上的建议说要升级到版本4.4.2或更高版本。当我运行时,npm show tar version我意识到我正在运行版本4.4.8,这让我感到困惑。我去package-lock.json了解了node-gyp,它是node-sass的依赖项,它使用的是tar版本^ 2.0.0。

这使我感到困惑,因为我已经看到许多不同的tar版本是对其他软件包的依赖,但这node-sass > node-gyp > tar version是唯一的波纹管v4.4.2。为什么这样工作,为什么我必须手动修复它,以及如何手动修复/升级这个tar包?

tar node-sass flickity npm-install npm-audit

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

JavaScript DOM insertBefore无法正常工作

这是我的第一个问题,所以请原谅我的错误.

我试图通过JavaScript向表中添加行.新添加的行将添加到倒数第二个位置,最后一行包含创建新行的按钮.最后一行有id"submitrow",但获取该元素并将其传递给insertBefore不知何故不起作用.将lastChild作为第二个参数传递给insertBefore也表现为奇数.

在身体中,这是形式:

<form>
    <input type="hidden" name="submit_done" value="true" />
    <table id="formtable">
        <tr>
            <td>Number : </td>
            <td><input type="text" name="num[]" /></td>
        </tr>
        <tr id="submitrow">
            <td><input type="button" value="Add one more" onclick="addRow()" /></td>
            <td><input type="submit" value="Go!" /></td>
        </tr>
    </table>
</form>
Run Code Online (Sandbox Code Playgroud)

这是JavaScript函数:

function addRow(){
    var new_tr  = document.createElement('tr');
    var new_td1     = document.createElement('td');
    var new_td2     = document.createElement('td');
    var new_input   = document.createElement('input');

    new_td1.innerHTML = 'Number : ';

    new_input.type = 'text';
    new_input.name = 'num[]';
    new_td2.appendChild(new_input);

    new_tr.appendChild(new_td2);
    new_tr.insertBefore(new_td1, new_td2);

    var formtable   = document.getElementById('formtable');
    var submitrow   = document.getElementById('submitrow');
    submitrow.style.backgroundColor='red'; /*Works …
Run Code Online (Sandbox Code Playgroud)

javascript dom

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

未调用插件函数内的 setInterval()

我有一个 jQuery 幻灯片插件,我正在制作它,虽然它有一个setInterval()内部没有被调用,但如果我移动setInterval()它外部的内容,那么它虽然只运行一次,但它可以工作。

var gap = 3;
var duration = 0.5;
(function ($) {
    $.fn.slideshow = function () {
        return this.each(function () {
            g = gap * 1000;
            d = duration * 1000;
            $(this).children().css({
                'position': 'absolute',
                'display': 'none'
            });
            $(this).children().eq(0).css({
                'display': 'block'
            });
            setInterval(function () {
                slide();
            }, g);

            function slide() {
                $(this)
                    .children()
                    .eq(0)
                    .fadeOut(d)
                    .next()
                    .fadeIn()
                    .end()
                    .appendTo($(this).children().eq(0).parent());
            }
        });
    };
})(jQuery);
$('.slideshow').slideshow();
Run Code Online (Sandbox Code Playgroud)

HTML:

<div class='slideshow'>
    <a>1</a>
    <a>2</a>
    <a>3</a>
    <a>4</a>
</div>
Run Code Online (Sandbox Code Playgroud)

这是我的插件的小提琴:

http://jsfiddle.net/Hive7/GrtLC/

javascript jquery setinterval

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

排序UITableView无法正常工作

我是一个排序系统,对我的阵列中的数据进行排序,虽然我在完成的边缘遇到了麻烦.我已经设置了所有系统来做它虽然现在告诉我我有一个错误.以下是有问题的代码段及其给出的错误:

NSArray *filteredArray = [[patients filterUsingPredicate:search] sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];
Run Code Online (Sandbox Code Playgroud)

它说的错误是患者,它说:

Bad receiver type void
Run Code Online (Sandbox Code Playgroud)

这是上下文中的代码:

- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static  NSString *cellIndentifier = @"cell";
    UITableViewCell *cell = [tv dequeueReusableCellWithIdentifier:cellIndentifier forIndexPath:indexPath];
    NSString *letter = [charIndex objectAtIndex:[indexPath section]];
    NSPredicate *search = [NSPredicate predicateWithFormat:@"patientName beginswith[cd] %@", letter];

    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"patientName" ascending:YES];

    NSArray *filteredArray = [[patients filterUsingPredicate:search] sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];
    if ( nil == cell ) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];
    }

    NSLog(@"indexPath.row = %d, patients.count = %d", …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c uitableview nspredicate ios

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

当我尝试通过标记获取textfield的值时,应用程序崩溃

我正在动态地将文本字段添加到我的应用程序,但是当我尝试通过这样的标记访问它们时:

UITextField *textField = (UITextField *)[self.view viewWithTag:0];
Run Code Online (Sandbox Code Playgroud)

然后尝试获取值:

NSString *val = textField.text;
Run Code Online (Sandbox Code Playgroud)

该应用程序崩溃,我收到此错误:

-[UIView text]: unrecognized selector sent to instance 0x1edb0c30
Run Code Online (Sandbox Code Playgroud)

任何有关如何解决此问题的帮助将不胜感激

cocoa-touch objective-c uitextfield ios

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