繁体   English   中英

尝试从另一个JavaScript更改JavaScript变量

[英]Trying to change javascript variable from another javascript

我正在尝试在网站内使用名为yEd的外部工具。

我创建了一个带有一些图形作为值的选择,当用户单击一个选项时,图形将显示出来。

<div class="col-sm-3">    
    <select multiple class="form-control" id="graph" name="graph" >
        <option value="yed/files/hardware/1.graphml">#1</option> <!-- GET value of this option-->
        <option value="files/hardware/2.graphml">#2</option>
        <option value="files/hardware/3.graphml">#3</option>
    </select>
</div>

<input type="button" id="change" value="change">

<div id="graph">
    <script type="text/javascript" language="javascript">
            <!--

            if (!RunPlayer(
                "width", "100%",
                "height", "100%",
                "graphUrl", "yed/files/hardware/1.graphml", //PUT here when option is clicked and reload the graph
                "overview", "true",
                "toolbar", "true",
                "tooltips", "false",
                "movable", "true",
                "links", "true",
                "linksInNewWindow", "true",
                "viewport", "full"
                )) {
              if (!InstallFlashUpdate("width", "100%", "height", "100%")) {
                document.write('This content requires the Adobe Flash Player Version 9.0.38 or higher. '
                    + '<a href=http://www.adobe.com/go/getflash/>Get Flash</a>');
              }
            }



            //-->
    </script>
</div>

我尝试使用javascript这样:

<script type="text/javascript">
var a = "yed/files/hardware/1.graphml";
function showDiv(toggle){
    a = "yed/files/hardware/2.graphml";

}
</script>

但是失败了惨不忍睹。

有什么建议吗? 谢谢

---后来编辑

我试过了,但是它重新加载了页面,启动了viwer,但是没有加载图形。

<script type="text/javascript" language="javascript">
        <!--

            var graph = "yed/files/hardware/1.graphml";

            RunPlayer(
            "graphUrl", graph,
            "overview", "true",
            "toolbar", "true",
            "tooltips", "false",
            "movable", "true",
            "links", "true",
            "linksInNewWindow", "true",
            "viewport", "full"
            );

             $("#graph").change(function () {
                    var graph = $("#graph").val();
                    RunPlayer(
                        "graphUrl", graph,
                        "overview", "true",
                        "toolbar", "true",
                        "tooltips", "false",
                        "movable", "true",
                        "links", "true",
                        "linksInNewWindow", "true",
                        "viewport", "full"
                        );
                });



        //-->
</script>

该变量设置正确。

几件事:

为了提高可读性,我将首先执行此部分,而不是将其嵌套在另一个条件中:

if (!InstallFlashUpdate({width: "100%", height: "100%")) {
    document.write(
        'This content requires the Adobe Flash Player Version 9.0.38' +
        'or higher. <a href="http://www.adobe.com/go/getflash/">'+
        'Get Flash</a>'
    );
}
else{

看起来您的意思是将普通对象传递给RunPlayer。 我先定义它,然后再传递给它:

var settings = {
            width: "100%",
            height: "100%",
            graphUrl: "yed/files/hardware/1.graphml",
            overview: true,
            toolbar: true,
            tooltips: false,
            movable: true,
            links: true,
            linksInNewWindow: true,
            viewport: "full"
};

现在,当用户未选择任何内容时,按原样运行它:

RunPlayer(settings);

但是,当用户更改选项时,我们仍然没有更改它。 为此,我们添加了一个运行匿名函数的侦听器,该函数可以:

步骤1.将设置中的graphUrl更改为下拉菜单中的值。 步骤2.使用更改后的设置再次调用RunPlayer。

var urlChanger = document.getElementById('change');

urlChanger.addEventListener('change', function(event){
    settings.graphUrl = event.target.value; //step 1
    RunPlayer(settings); //step 2
});

} //关闭其他

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM