GVKun编程网logo

为什么 Ctrl+S 不能在 javascript 中使用shortcut.js(为什么ctrl 不能用了)

7

本篇文章给大家谈谈为什么Ctrl+S不能在javascript中使用shortcut.js,以及为什么ctrl不能用了的知识点,同时本文还将给你拓展javascript–AJAX发布请求使用qwest

本篇文章给大家谈谈为什么 Ctrl+S 不能在 javascript 中使用shortcut.js,以及为什么ctrl 不能用了的知识点,同时本文还将给你拓展javascript – AJAX发布请求使用qwest.js goo.gl url shortener api、javascript – 为Protractor设置Screenshot Reporter、javascript – 为什么在延迟中使用setTimeout、javascript – 为什么我不能在jQuery的document.ready()中定义函数?等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

为什么 Ctrl+S 不能在 javascript 中使用shortcut.js(为什么ctrl 不能用了)

为什么 Ctrl+S 不能在 javascript 中使用shortcut.js(为什么ctrl 不能用了)

如何解决为什么 Ctrl+S 不能在 javascript 中使用shortcut.js?

我正在使用 shortcut.js。一切正常,但添加一些快捷方式(如 Ctrl+S)不会被库捕获并弹出浏览器 html 保存面板。

工作:

shortcut.add("F3",function() {
        alert("انتخاب کالا");
    });

不工作:

shortcut.add("Ctrl+S",function() {
         alert("ذخیره");
    });

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

javascript – AJAX发布请求使用qwest.js goo.gl url shortener api

javascript – AJAX发布请求使用qwest.js goo.gl url shortener api

我正在尝试使用goo.gl URL Shortener API缩短URL,这是一个开源库(qwest.js).我已经使用jquery成功实现了它,但它给了我错误“这个API不支持解析表单编码的输入.”当使用qwest完成时.

我的代码用jquery:

var longURL = "http://www.google.com/";
 $.ajax({
        url: 'https://www.googleapis.com/urlshortener/v1/url?key=AIzaSyANFw1rVq_vnIzT4vVOwIw3fF1qHXV7Mjw',
        type: 'POST',
        contentType: 'application/json; charset=utf-8', 
        data: '{ longUrl:"'+ longURL+'"}',         
        success: function(response) {
          console.log(response)
        }
 })
.done(function(res) {
    console.log("success"); 
})
.fail(function() {
    console.log("error");
})
.always(function() {
    console.log("complete");
});

和qwest.js的非工作代码

var longURL = "http://www.google.com/"    
qwest.post('https://www.googleapis.com/urlshortener/v1/url?key=479dfb502221d2b4c4a0433c600e16ba5dc0df4e&',
    {longUrl: longURL}, 
    {responseType:'application/json; charset=utf-8'})
                    .then(function(response) {
                        // Make some useful actions
                    })
                    .catch(function(e, url) {
                        // Process the error
                    });

强烈建议任何帮助.

解决方法:

qwest的作者在这里;)

如文档中所述:默认的Content-Type标头是针对post和xhr2数据类型的application / x-www-form-urlencoded,带有POST请求.

但Google Shortener服务不接受它.我假设它想要一个JSON输入类型.然后你应该将qwest的dataType选项设置为json.此外,您的responseType选项无效,并且不遵循文档.通常情况下,如果Google使用有效的Content-Type标头回复请求,则无需进行设置.这是好的代码:

qwest.post( ‘https://www.googleapis.com/urlshortener/v1/url?key=479dfb502221d2b4c4a0433c600e16ba5dc0df4e\u0026amp;’,
    {longUrl:longURL},
    {数据类型: ‘JSON’})

在Google未发送已识别的Content-Type的情况下,只需将responseType选项设置为json即可.

javascript – 为Protractor设置Screenshot Reporter

javascript – 为Protractor设置Screenshot Reporter

由于我是自动化测试和量角器的新手,我在测试中设置它时遇到了一些麻烦.

根据guide,每次我创建一个新的截图报告实例时,我都要传递一个目录路径.是的,这意味着我每次在spec文件中创建一个新实例?

此外,还有一些功能可以截取我跳过的和失败的测试的屏幕截图.我应该使用takeScreenShotsForSkippedSpecs和takeScreenShotsOnlyForFailedSpecs?在我的配置文件中?

这是我的准备:

onPrepare: function () {
        browser.driver.manage().window().maximize();
        global.dvr = browser.driver;
        global.isAngularsite = function (flag) {
            browser.ignoreSynchronization = !flag;
        }
        jasmine.getEnv().addReporter(new ScreenShotReporter({
            baseDirectory: '/tmp/screenshots',takeScreenShotsForSkippedSpecs: true,takeScreenShotsOnlyForFailedSpecs: true
        }));

解决方法

注意:如果您使用的是jasmine2,请使用 protractor-jasmine2-screenshot-reporter.

对于jasmine1:

我一直在使用protractor-html-screenshot-reporterpackage成功使用.它基于protractor-screenshot-reporter,但也提供了一个很好的HTML报告.

这是我在量角器配置中的内容:

var HtmlReporter = require("protractor-html-screenshot-reporter");

exports.config = {
    ...

    onPrepare: function () {
        // screenshot reporter
        jasmine.getEnv().addReporter(new HtmlReporter({
            baseDirectory: "test-results/screenshots"
        }));
    },...
}

运行测试后,您将获得一个包含(示例)的HTML文件:

您可以单击“查看”以在浏览器中查看特定于测试用例的屏幕截图.

javascript – 为什么在延迟中使用setTimeout

javascript – 为什么在延迟中使用setTimeout

我试图了解延迟是如何工作的,因此在所有这些中它们都使用setTimeout.
this.callbacks;// array of functions reference
this.callbacks.forEach(function(callback){
    window.setTimeout(function(){
          callback(data);
    },0);
});

this questions中使用setTimeout的一个示例

resolve: function (data) {
    this.promise.okCallbacks.forEach(function(callback) {
      window.setTimeout(function () {
        callback(data)
      },0);
    });
  },

通过setTimeout调用循环函数与callback()之间的区别是什么?或callback.call();

解决方法

这样做的原因是允许javascript线程有机会触发可能在队列中等待的任何其他事件.

Javascript是单线程的.如果触发了某个事件,则只能在当前运行的代码完成时运行.

使用零时间延迟的setTimeout有效地告诉JS解释器回调函数调用是新上下文的一部分,并且当前代码块已完成.这意味着JS将在调用callback()之前抓住机会检查是否需要处理任何其他事件.

虽然这可能会延迟callback()本身被立即调用,但这对您网站的整体性能有好处:

可能需要处理的其他事件包括单击事件和其他UI触发器.如果您没有给他们执行的机会,可能会使您的用户界面显得迟缓或无响应.

javascript – 为什么我不能在jQuery的document.ready()中定义函数?

javascript – 为什么我不能在jQuery的document.ready()中定义函数?

如果我将它们放在document.ready()函数中,函数将显示为undefined:

$(document).ready(function(){
  function foo()
  {
    alert('Bar');
  }
});

foo(); // Undefined

为什么会这样?我确定我只是需要一些简单的理解:)

解决方法:

不确定为什么在ready()范围内定义函数对你很重要,但你可以通过预先声明foo来使它工作:

<html><head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
<script>
var foo;                           // Here's the difference
$(document).ready(function(){
  foo = function ()
  {
    alert('Bar');
  }
});
</script></head><body>
<input type="button" onclick="foo()" value="Click me">
</body></html>

显然你不能在ready()之后立即从内联脚本调用foo()因为ready()代码还没有运行,但你可以稍后调用该函数.

只需确保在ready()代码运行之前没有任何东西可以尝试调用foo()(或者使foo()的初始声明成为无害函数).

关于为什么 Ctrl+S 不能在 javascript 中使用shortcut.js为什么ctrl 不能用了的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于javascript – AJAX发布请求使用qwest.js goo.gl url shortener api、javascript – 为Protractor设置Screenshot Reporter、javascript – 为什么在延迟中使用setTimeout、javascript – 为什么我不能在jQuery的document.ready()中定义函数?等相关内容,可以在本站寻找。

本文标签: