【问题标题】:Modify javascript files with an event使用事件修改 javascript 文件
【发布时间】:2018-10-05 23:48:34
【问题描述】:

我使用免费软件工具 gpxviewer (https://www.j-berkemeier.de/GPXViewer/) 来可视化 GPS 轨迹。

我的问题: 我想实现一个下拉到 html 来改变外观和缩放。 在网站打开时,我想在其中更改一些参数的 javascript 文件。 是否可以做一个菜单,打开js文件,修改一些代码,重新加载新参数的页面?

<select id="dropdown" onchange="changeFunc();">
    <option value="variante1" selected>Variante1</option>
    <option value="variante2">Variante2</option>
    <option value="variante3">Variante3</option>
</select>

javascript 文件中我想用选择菜单修改的行(示例):

JB.Scaling = {
   bandwidthDownmin: 0,bandwidthDownmax: 150,
   hardscaling:true
}; 

感谢您的帮助

【问题讨论】:

  • javascript 文件中的行 什么 javascript 文件?这段代码是您编写的还是“工具”的一部分?您不想重写需要将参数存储在某处然后动态使用它们的 Js 文件
  • 也就是说,您需要某种“重绘”方法来调用,该方法可能在代码中,也可能不在代码中。 TBH(不要走错路)但我觉得你在这里超出了你的深度
  • 代码是“工具”的一部分。例如,有一个带有标准参数的 defs.js,用于缩放、颜色等。我想用下拉菜单更改这个参数

标签: javascript events onchange gpx


【解决方案1】:

在网络浏览器中运行的脚本不能像这样直接编辑服务器上的文件。如果可以的话,实际上任何人都可以对您的网站进行任何他们想要的更改。无意冒犯,但在你从事这样的项目之前,这对你来说应该是 100% 显而易见的。如果不是,你真的需要先做一些reading

至于如何实际执行 之类的 ...您可以像我在这里所做的那样在 JB.scaling 中简单地分配值:

JB.scaling.bandwidthDownmin = 10;
JB.scaling.bandwidthDownmax = 200;

但是,正如 cmets 所提到的,这可能不会做任何事情,因为您的“工具”几乎肯定不会检查这些值并进行更新,除非您明确告诉它这样做。为此,它需要有一个可以调用的函数。看看你是否可以在文档中找到它。我会帮忙,但我不会读德语。 :\

请注意,告诉“工具”重绘与实际重新加载页面不同。当您单击浏览器上的“刷新”按钮时会重新加载页面。这实际上会抛出您正在查看的页面 - 以及您对其内容所做的任何本地更改 - 并从服务器请求新的副本。

您可以使用 Javascript 触发此操作,但如果您这样做,您将丢弃您对这些值所做的任何更改,以及用户从下拉列表中选择的选项。为了让他们的选择在页面加载之间持续存在,您必须使用cookieslocal storage。你也可以设置一个数据库来存储服务器上的东西,但这可能有点过头了。

【讨论】:

    猜你喜欢
    • 2017-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多