[英]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.