小编Hel*_*rld的帖子

如何使用Chrome扩展程序监听网址更改

我正在撰写Google Chrome扩展程序,以自动完成一些常见任务.我想要的功能如下:

  1. 创建一个新选项卡并导航到我的webmail
  2. 输入用户名和密码
  3. 点击"提交"按钮
  4. 等到Webmail页面出现,然后选择"roundcube"客户端.

我已完成步骤1,2和3,他们工作.我提交凭据后尝试侦听网址更改时遇到很多麻烦,以便选择圆形客户端的功能可以运行

我知道我可以通过添加到我的清单来显示客户端选择页面时运行脚本但是我想使用"chrome.tabs.executeScript",这样只有当我从chrome扩展程序运行脚本时才选择roundcube而不是我去手动选择客户端页面.

这是我的manifest.json:

{
  "manifest_version": 2,

  "name"       : "Chrome Autobot",
  "description": "This extension will run various automation scripts for google chrome",
  "version"    : "1.0",

  "browser_action" : {
    "default_icon" : "icon.png",
    "default_popup": "index.html"
  },
  "permissions": [
    "activeTab",
    "webNavigation",
    "tabs",
    "http://*/*",
    "https://*/*"
  ]
}
Run Code Online (Sandbox Code Playgroud)

这是我的chrome脚本:

jQuery(function($) {
    "Use Strict";

    var openWebmail = function() {
        chrome.tabs.create({
            url: 'http://mywebmaillogin.com:2095/'
        }, function() {
            chrome.tabs.executeScript(null, {file: "scripts/openEmail.js"});
        });
        chrome.tabs.onUpdated.addListener(function(){
            chrome.tabs.executeScript(null, {file: "scripts/openEmail.js"});
            alert('i work');
        });
    };

    var init = $('.script-init'); …
Run Code Online (Sandbox Code Playgroud)

javascript jquery google-chrome google-chrome-extension

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

Javascript数字连接而不是添加但是typeof是数字而不是字符串

我是javaScript的新手.我在这里建一个计算器

我已将输入值存储在变量中,以便最终可以操作结果以根据输入执行计算.现在我只想将所有值加在一起.

但是,它们不是添加,而是连接在一起.我使用parseInt来阻止javascript将数字视为字符串,而typeOf显示它们是数字.

这是我的javascript:

$(document).ready(function() {

var theTerm = $("#theTerm").val();
var theRate = $("#theRate").val();
var thePrice = $("#thePrice").val();
var theTax = $("#theTax").val();
var theDown = $("#theDown").val();
var theTrade = $("#theTrade").val();
var theResult = parseInt(theTerm + theRate + thePrice + theTax + theDown + theTrade, 10);

$("#calculate").click(function(){
    alert(theResult);
    alert(typeof(theResult));
});

}); 
Run Code Online (Sandbox Code Playgroud)

和HTML:

<div id="calculator">
<span id="calculatorHeader">Monthly Payment Calculator</span>
<table style="margin:0 auto;">
    <tr>
    <td style="width:40px;">Term
        <input id="theTerm" size="5" value="7" name="term" style="width:35px" />
    </td>
    <td style="width:40px;">Rate(%)
        <input id="theRate" size="5" value="7" name="apr" …
Run Code Online (Sandbox Code Playgroud)

javascript jquery

10
推荐指数
2
解决办法
3万
查看次数

我可以从相对路径提供create-react-app资产吗?

目前正在构建我的create-react-app构建生成对资产的引用作为绝对路径,即:

/static/js/main.12345.js
Run Code Online (Sandbox Code Playgroud)

我想从一个变量子目录服务,该子目录可能是:

/ pre-prod或/ prod

因此,在package.json中设置"homepage"将不起作用,因为主页依赖于运行时环境.

我想像这样生成资产参考:

static/js/main.12345.js
Run Code Online (Sandbox Code Playgroud)

而且我更喜欢不弹射而去做.那可能吗?我查看了文档和Google搜索等,但没有看到答案.

javascript reactjs webpack create-react-app

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

为什么我的玩笑测试在带有打字稿的 React Native 中失败?

我已经使用 typescript 在 react native 中设置了一个非常非常简单的组件。我的目标只是设置 Jest 并通过一个简单的测试。这是 App.tsx 的代码:

import React from 'react';
import { StyleSheet, Text, View } from 'react-native';

export default function App() {
  return (
    <View style={styles.container}>
      <Text>Hello World!</Text>
    </View>
  );
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#fff',
    alignItems: 'center',
    justifyContent: 'center',
  },
});
Run Code Online (Sandbox Code Playgroud)

和测试:

import React from 'react';
import App from '../App';

import { create } from "react-test-renderer";

test('renders correctly', () => {
  const tree = create(<App />);
  expect(tree.toJSON()).toMatchSnapshot();
});
Run Code Online (Sandbox Code Playgroud)

“Hello …

typescript reactjs jestjs react-native

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

使用HTML5 localstorage在页面刷新时保留jQuery切换状态

我刚刚了解了HTML5"localstorage"功能.我一直在尝试与jQuery切换一起实现它,以便在刷新页面时使div保持在最新状态.这似乎是一个很好的替代cookie!我在理解如何以这种方式实现它时遇到了很多麻烦.这是我到目前为止所尝试的:

HTML:

<div id="container"</div>
    <a id="foo" href="javascript:void(0);">Click Me</a>
    <div id="bar"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

#container {width:200px; height:220px;}

#foo {
    display:block; float:left;
    width:200px; height:20px; 
    text-align:center;
}
#bar {
    display:none; float:left;
    height:200px; width:200px;
    background:#000000;
}
Run Code Online (Sandbox Code Playgroud)

jQuery和在localStorage的尝试为教训在这里:

$(document).ready(function(){
    $('#foo').click(function() {
    $(this).siblings().toggle();
    localStorage.setItem(display, block);
});
    var block = localStorage.getItem(block);
    if(block){
        $('#bar').show()
    }
});
Run Code Online (Sandbox Code Playgroud)

是小提琴.

我在做什么绝对不行.我在这里看到了一些类似的问题,是一个很好的例子.然而,这个答案对我没有帮助,看起来非常复杂.

我只是试图了解如何在非常基本的级别使用localstorage以保存切换状态.

非常感谢任何建议或帮助.

jquery html5 local-storage

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

如何在reactjs中设置单击事件的状态和道具

我有以下反应组件,将用于切换菜单:

var MenuToggle = React.createClass({
    render: function() {
        return(
            <a id="menu-toggle" href="javascript:void(0);">
                <i id="closed" className="fa fa-bars"></i>
                <i id="open" className="fa fa-times"></i>
            </a>
        )
    }
});
Run Code Online (Sandbox Code Playgroud)

单击此组件时,我需要切换其状态,以便“汉堡包”图标变为“x”图标。我还需要向组件添加一个 prop,以便可以通过侦听“MenuToggle”组件接收该 prop 来更新父菜单的状态。由于我需要根据相同的点击事件执行这两项操作,因此我尝试过:

var MenuToggle = React.createClass({
    getInitialState: function() {
        return {open: false}
    },
    handleClick: function() {
        var that = this;
        function setTheState() {
            that.setState({open: !that.state.open})
        }
        function setTheProps() {
            that.props.whenClicked
        }
        setTheState()
        setTheProps()
    },
    render: function() {
        return(
            <a id="menu-toggle" href="javascript:void(0);" onClick={this.handleClick} className={(this.state.open ? 'open' : '')}>
                <i id="closed" className="fa fa-bars"></i>
                <i id="open" className="fa …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

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

当我运行"adb devices"时,为什么我的genymotion设备没有列出

我正在使用nativescript开始我的第一个android项目.

我想用genymotion运行我的项目.

在genymotion GUI设置/ ADB我使用自定义Android SDK工具,genymotion告诉我找到了android SDK工具.VirtualBox路径也是有效的,当我重命名设备时,VirtualBox名称和Genymotion名称都发生了变化.Virtualbox VM已关闭.

我启动genymotion并用黑屏打开模拟器.然后我跑:

tns run android
Run Code Online (Sandbox Code Playgroud)

根据nativescript文档

我得到输出:

Cannot find connected devices. Reconnect any connected devices, verify that your system recognizes them, and run this command again.
Run Code Online (Sandbox Code Playgroud)

然后我试着跑:

adb devices
Run Code Online (Sandbox Code Playgroud)

并得到一个空列表,所以似乎我的设备没有被识别,我只是不知道为什么.

我也试过跑:

tns run android --emulator --geny nameOfDevice
Run Code Online (Sandbox Code Playgroud)

这将启动模拟器,但再次只是一个空白屏幕.所以我猜nativescript知道这个设备,但adb没有?

如果我错过了一些明显的安卓问题,任何帮助都会非常感激并提前道歉.

android virtualbox android-emulator genymotion nativescript

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

在ipad上选择时,jQuery Chosen选择选项触发具有较低z索引的链接

我正在使用jQuery Chosen插件来设置选择框#foo的样式.我有一个块级链接(#bar),它位于#foo下方,并且具有较低的(0)z索引.#foo的选项的z-index为1010.

在我的ipad mini上,当我从#foo中选择一个选项时,会触发链接(#bar).我在Android平板电脑上没有任何问题,我在任何非触摸浏览器上都没有任何问题.只是iPad

这是我的代码:

<select id="foo">
    <option>foo</option>
    <option>foo</option>
    <option>foo</option>
    <option>foo</option>
    <option>foo</option>
    <option>foo</option>
    <option>foo</option>
    <option>foo</option>
    <option>foo</option>
    <option>foo</option>
    <option>foo</option>
    <option>foo</option>
    <option>foo</option>
</select>

<a href="http:www.stackoverflow.com" id="bar">GO!</a>
Run Code Online (Sandbox Code Playgroud)

和CSS

#foo {width:300px;}

#bar {display:block; width:400px; height:100px; color:#FFF; text-align:center; font-size:30px; background:#FF0000; line-height:90px; z-index:0;}
Run Code Online (Sandbox Code Playgroud)

是我的小提琴.选择jQuery的css是小提琴的外部资源.

感谢帮助!

javascript css jquery ipad

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

动态更新 react-google-chart 类型

我想使用选择框来更改 react-google-chart 的图表类型。代码如下所示:

const GoogleGraph = ({chartType, handleChartTypeChange}) => (
        <section>
            <Selector
                chartType={chartType}
                handleChartTypeChange={handleChartTypeChange}
            />
            <Chart
                chartType={chartType}
                data={data}
                options={options}
                graphID={chartType}
                width="100%"
                height="10em"
                chartEvents={chartEvents}
            />
        </section>
    );
Run Code Online (Sandbox Code Playgroud)

When the select box is changed I am getting the data I expect as I can see in the debugger that the chartType prop has changed from "Bar" to "Line" however the chart remains a bar chart after render completes. 我没有收到错误。

是否可以动态更新图表类型?

javascript reactjs

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

为什么写一个永远不会返回值的函数

我正在阅读一本非常全面的javascript编程书.在语言基础的"功能"部分,我得出以下结论:

"也可以在不指定返回值的情况下使用return语句.当以这种方式使用时,函数会立即停止执行并返回undefined作为其值.这通常用于不返回值的函数,以便及早停止函数执行,如下例所示,警报不会显示:"

function sayHi(name, message) {
return;
alert(“Hello “ + name + “, “ + message); //never called
}
Run Code Online (Sandbox Code Playgroud)

我试图理解为什么有人想要这样做.为什么要写一个返回"undefined"的函数?我试过谷歌搜索,搜索SO,但没有太多的运气虽然这可能是因为我没有正确地描述我的搜索,因为我正在学习js.

任何人都可以给我一个真实世界的例子,说明这可能有用,这样我才能理解?

javascript function

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

Javascript将Infinity,NaN或""重新定义为0

我有一个javascript计算器,它接受用户输入,做一些数学运算并将结果写入输入字段"#theResult"

由于"#theResult"在keyup上更新,有时"#theResult"将返回Infinity,NaN或"",直到所有字段都填写完毕.在填写所有字段之前,我希望"#theResult"返回0.这是代码:

if (theResult === Infinity || theResult === "" || theResult === NaN) {
    theResult === 0;
}
$("#theResult").val(theResult);
Run Code Online (Sandbox Code Playgroud)

完整的代码在这里

在此先感谢您的帮助!

javascript jquery

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