是否可以使用javascript将某人发送到条件语句中的网站?

时间:2016-08-17 18:12:47

标签: javascript conditional adobe-captivate

我确定我只是以某种方式搞砸了我的代码(仍然是一个noobie)但是我试图创建一个随机数(工作正常)然后使用变量从该随机数发送每3个用户中的1个进行课后调查(根本没有工作正常)。

有没有办法做到这一点,如果是这样,我做错了什么?

这里是代码(这是在adobe Captivate课程中,所以我也使用了API接口库,但那部分工作正常)。

目前,这段代码每次都会将用户发送到列出的链接,而不是依赖于变量。

var jsRandomNumber = 0

function getRandomInt(min, max) {
  var jsRandomNumber = Math.floor(Math.random() * (max - min + 1)) + min;
  alert(jsRandomNumber);
  window.cpAPIInterface.setVariableValue('randomnumber', jsRandomNumber);
}

getRandomInt (1, 3)

function randomQuizGenerator() {
    if (var jsRandomNumber = 1) {
      window.open("http://www.w3schools.com");
      window.cpAPIInterface.next();
    } else {
      window.cpAPIInterface.next();
    }
}

randomQuizGenerator()

3 个答案:

答案 0 :(得分:2)

根据你的代码,我看到三个问题,其中两个是对变量的误解,第三个是对条件的误解。

首先,您只需要在顶部一次声明变量var jsRandomNumber。然后,您只需使用其名称jsRandomNumber即可访问它。每隔一次将var放在它前面,就会在该范围内创建一个新变量。

对于if语句,请再次使用jsRandomNumber代替var jsRandomNumber,但您还需要使用==来比较两个值。使用jsRandomNumber = 1会将jsRandomNumber设置为1,然后该值用于确定if是否应该通过,在这种情况下,它始终会因为1恰好评估为{ {1}}。 true会返回jsRandomNumber == 1true,具体取决于false的值。

jsRandomNumber

答案 1 :(得分:1)

您可以使用一些小修补程序来解决您的问题。

  1. 不要多次声明jsRandomNumber。每次使用var时,都会重新声明该变量,因此它的值会在整个脚本中发生变化。
  2. 只需将jsRandomNumber变量置于getRandomInt函数的本地变量,而不是更新全局变量。您可以返回它并使用返回值。局部变量在这里更有意义,因为您只需要在一个地方更改该数字。如果将变量保留在全局范围内,则getRandomInt函数之外的代码将能够访问并更改该变量。它使调试问题变得更加困难。
  3. 比较两个值时,请使用=====。使用=将无效,因为单个等号是赋值运算符。
  4. 这是一个更新的例子:

    function getRandomInt(min, max) {
      var jsRandomNumber = Math.floor(Math.random() * (max - min + 1)) + min; // only declare the variable once
      alert(jsRandomNumber);
      window.cpAPIInterface.setVariableValue('randomnumber', jsRandomNumber);
      return jsRandomNumber; // Return the variable, instead of changing a global variable
    }
    
    function randomQuizGenerator() {
        var myNumber = getRandomInt (1, 3); // using return value, not global variable
        if (myNumber === 1) { // triple equals sign for checking equality
          window.open("http://www.w3schools.com");
          window.cpAPIInterface.next();
        } else {
          window.cpAPIInterface.next();
        }
    }
    
    randomQuizGenerator()
    

答案 2 :(得分:0)

首先,无需重新声明try: person = Person.objects.get(name=name) except (Person.DoesNotExist, Person.MultipleObjectsReturned) as e: person = None jsRandomNumber主要用于首次声明变量 。因此,您可以删除多次发生的无关var

其次,在比较var语句中的值时,您需要使用if运算符。单个==是赋值运算符,也将返回您设置的值。例如,=将始终评估为true,因为其设置if(a=1)等于1然后返回1.请查看here以获取更多信息。因此,您应该将if语句更改为:

a