是否有可能将某人发送到使用javascript的条件语句的网站

Is it possible to send someone to a website in a conditional statement using javascript?

本文关键字:javascript 条件 网站 语句 有可能 某人 是否      更新时间:2023-09-26

我确信我只是搞砸了我的代码(仍然有点新手),但我试图创建一个随机数(这是正常的),然后使用该随机数的变量发送每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()

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

首先,您只需要在顶部声明一次变量var jsRandomNumber。然后,您可以简单地使用它的名称jsRandomNumber来访问它。每隔一次你把var放在它前面,你就在那个范围内创建了一个新的变量。

对于if语句,再次使用jsRandomNumber而不是var jsRandomNumber,但是您还需要使用==来比较两个值。使用jsRandomNumber = 1jsRandomNumber设置为1,然后该值用于确定if是否应该传递,在这种情况下,它总是会传递,因为1的值恰好是truejsRandomNumber == 1将根据jsRandomNumber的值返回truefalse

var jsRandomNumber = 0
function getRandomInt(min, max) {
  jsRandomNumber = Math.floor(Math.random() * (max - min + 1)) + min;
  alert(jsRandomNumber);
  window.cpAPIInterface.setVariableValue('randomnumber', jsRandomNumber);
}
getRandomInt (1, 3)
function randomQuizGenerator() {
    if (jsRandomNumber == 1) {
      window.open("http://www.w3schools.com");
      window.cpAPIInterface.next();
    } else {
      window.cpAPIInterface.next();
    }
}
randomQuizGenerator()

你可以做几个小的修复来解决你的问题。

  1. 不要多次声明jsRandomNumber每次你使用var,你都在重新声明这个变量,所以它的值在你的脚本中是不断变化的。
  2. 不更新全局变量,只需将jsRandomNumber变量设置为getRandomInt函数的局部变量。您可以返回它并使用返回值。局部变量在这里更有意义,因为你只需要在一个地方改变这个数字。如果将变量保留在全局作用域中,那么getRandomInt函数之外的代码将能够访问和更改该变量。
  3. 当比较两个值时,使用=====。使用=不能工作,因为单个等号是赋值操作符。

这里是一个更新的例子:

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()

首先不需要重新声明jsRandomNumbervar主要用于第一次声明变量。因此,您可以删除多次出现的无关的var

其次,在比较if语句中的值时,需要使用==操作符。单个=是赋值操作符,也将返回您设置的值。例如,if(a=1)总是求值为true,因为它设置a等于1,然后返回1。点击这里了解更多信息。因此,您应该将if语句更改为:

 if(jsRandomNumber == 1) {
      ....
 }