Javascript 如何使用Muse参数进行布尔比较以运行JS函数?
我需要AdobeMuse小部件,它将运行基于true或false的函数。 也许这会有帮助Javascript 如何使用Muse参数进行布尔比较以运行JS函数?,javascript,muse,Javascript,Muse,我需要AdobeMuse小部件,它将运行基于true或false的函数。 也许这会有帮助 非常感谢您的时间和耐心。一些一般性的观察。。您有一些语法错误,不需要iffalse。这将永远不会被计算,并且在这一点上没有可从中返回的函数。并且您的脚本标记缺少关闭> 从jQuery 1.7开始,.on优先于.bind 要从服务器而不是缓存重新加载,需要重新加载True 您的超时代码看起来正常 我不是Muse专家,但您需要使用{param}符号将参数输入到代码中 通过下面附带的一个简单示例,我们发现,要在字
非常感谢您的时间和耐心。一些一般性的观察。。您有一些语法错误,不需要iffalse。这将永远不会被计算,并且在这一点上没有可从中返回的函数。并且您的脚本标记缺少关闭> 从jQuery 1.7开始,.on优先于.bind 要从服务器而不是缓存重新加载,需要重新加载True 您的超时代码看起来正常 我不是Muse专家,但您需要使用{param}符号将参数输入到代码中 通过下面附带的一个简单示例,我们发现,要在字符串比较中使用Muse参数,需要将其用引号括起来:如果{param_wresize}==true,则可能会生成JS
if ("true" == "true") // Evaluates to true
或者在其他参数设置的情况下
if ("false" == "true") // Evaluates to false
因此,我们得到如下结果:
<?xml version="1.0" encoding="UTF-8"?>
<HTMLWidget name="Resize Window" formatNumber="2" localization="none"
creator="Mukos" defaultWidth="30" defaultHeight="30"
isResizable="false">
<parameters>
<separator/>
<bool name="wresize" label="Resize Window" defaultValue="true">
<trueVal value="true"/>
<falseVal value="false"/>
</bool>
</parameters>
<bodyEndHTML>
<![CDATA[
<script type="text/javascript">
if ("{param_wresize}" == "true" ) {
$(window).on('resize', function(e) {
if (window.RT) clearTimeout(window.RT);
window.RT = setTimeout(function() {
this.location.reload(true);
}, 200);
});
}
</script>
]]>
</bodyEndHTML>
</HTMLWidget>
你可以试试看它是否有效,但我不能说它是否有效。这就是我在上面的评论中提出XY问题的原因。您已经非常明确地询问了如何基于参数值运行函数。但你想解决的实际问题是什么?你可能走错了方向。任何关于你的意图的信息都是有用的
例如,在调整大小时重新加载的模式可能是为了解决某种布局问题,也可能是为了响应设计。缪斯并不擅长建立响应性强的网站。也许还有其他办法解决这个问题
穆科斯提出的更简单的版本。试着这样做:
<?xml version="1.0" encoding="UTF-8"?>
<HTMLWidget name="Resize Window" formatNumber="2" localization="none"
creator="Mukos" defaultWidth="30" defaultHeight="30"
isResizable="false">
<parameters>
<separator/>
<bool name="wresize" label="Resize Window" defaultValue="true">
<trueVal value="true"/>
<falseVal value="false"/>
</bool>
</parameters>
<bodyEndHTML>
<![CDATA[
<script type="text/javascript">
if ("{param_wresize}" == "true" ) {
alert("true");
}
else {
alert("false");
}
</script>
]]>
</bodyEndHTML>
</HTMLWidget>
问题是,{param_wresize}是什么?随机布尔标记是什么?你到底遇到了什么问题?函数不会运行,什么都不会发生。所以你有一个表单,如果某个东西是真的,你想运行一个函数?那么用它来标记它,而不是用无用的标记,比如语法、选择器和函数,不是很明智吗?它不起作用。让我们忘掉这个函数。我们可以通过简单的警报“它正在工作”来完成;我添加了:${param_wresize}==false.readyfunction{alert'it is working';};不管是真是假,它都在起作用。我想知道的是,问题是否在于Muse究竟如何替换{param_wresize}的值?如果是纯文本替换,那么我们可能需要尝试{param_wresize}==true来创建有效的JS比较。上面的一些编辑代码供您尝试。它正在工作!非常感谢你!我真的很感激你的帮助@西弗里达太棒了!这意味着我们可能还可以解决如何调整大小的功能;我将编辑上面的第一个示例以包含额外的{param_wresize}
<?xml version="1.0" encoding="UTF-8"?>
<HTMLWidget name="Resize Window" formatNumber="2" localization="none"
creator="Mukos" defaultWidth="30" defaultHeight="30"
isResizable="false">
<parameters>
<separator/>
<bool name="wresize" label="Resize Window" defaultValue="true">
<trueVal value="true"/>
<falseVal value="false"/>
</bool>
</parameters>
<bodyEndHTML>
<![CDATA[
<script type="text/javascript">
if ("{param_wresize}" == "true" ) {
$(window).on('resize', function(e) {
if (window.RT) clearTimeout(window.RT);
window.RT = setTimeout(function() {
this.location.reload(true);
}, 200);
});
}
</script>
]]>
</bodyEndHTML>
</HTMLWidget>
<?xml version="1.0" encoding="UTF-8"?>
<HTMLWidget name="Resize Window" formatNumber="2" localization="none"
creator="Mukos" defaultWidth="30" defaultHeight="30"
isResizable="false">
<parameters>
<separator/>
<bool name="wresize" label="Resize Window" defaultValue="true">
<trueVal value="true"/>
<falseVal value="false"/>
</bool>
</parameters>
<bodyEndHTML>
<![CDATA[
<script type="text/javascript">
if ("{param_wresize}" == "true" ) {
alert("true");
}
else {
alert("false");
}
</script>
]]>
</bodyEndHTML>
</HTMLWidget>