Javascript 如何使用Muse参数进行布尔比较以运行JS函数?

Javascript 如何使用Muse参数进行布尔比较以运行JS函数?,javascript,muse,Javascript,Muse,我需要AdobeMuse小部件,它将运行基于true或false的函数。 也许这会有帮助 非常感谢您的时间和耐心。一些一般性的观察。。您有一些语法错误,不需要iffalse。这将永远不会被计算,并且在这一点上没有可从中返回的函数。并且您的脚本标记缺少关闭> 从jQuery 1.7开始,.on优先于.bind 要从服务器而不是缓存重新加载,需要重新加载True 您的超时代码看起来正常 我不是Muse专家,但您需要使用{param}符号将参数输入到代码中 通过下面附带的一个简单示例,我们发现,要在字

我需要AdobeMuse小部件,它将运行基于true或false的函数。 也许这会有帮助


非常感谢您的时间和耐心。

一些一般性的观察。。您有一些语法错误,不需要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>