比方说,有人想要将多个相互依赖的JSXGraph板添加到Moodle页面,但由于某些原因,它们不应该都在同一个标签中。在下面的示例中,两个电路板放置在不同的表格单元格中:
<table>
<tr>
<th><jsxgraph width="600" height="500" box="jxgbox0"></jsxgraph></th>
<th><jsxgraph width="500" height="500" box="jxgbox1">
... all JXG code here...
</jsxgraph></th>
</tr>
</table>在上面的示例中,JXG代码位于第二个JSXGraph标记中,这有点奇怪,但它可以工作。
我想要的是将代码从任一电路板中分离出来,并将其放在表格下面的某个标签中,例如:
<table>
<tr>
<th><jsxgraph width="600" height="500" box="jxgbox0"></jsxgraph></th>
<th><jsxgraph width="500" height="500" box="jxgbox1"></jsxgraph></th>
</tr>
</table>
<script type="text/javascript">
... all JXG code here...
</script>问题是,这不起作用。将代码放在第三个<jsxgraph>标记中实际上是在填充两个初始板,但创建了第三个(空)板。
我现在的问题是:有没有可能将JavaScript代码与要在页面上创建和填充的所有<jsxgraph>标记分开?
发布于 2021-11-09 10:47:18
有一个为Moodle for jsxgraph贡献的插件
https://moodle.org/plugins/filter_jsxgraph
在Moodle中,过滤器基本上是在输出之前转换特殊内容。
我自己没有使用过jsxgraph过滤器,但这里有一个示例
https://github.com/jsxgraph/moodle-filter_jsxgraph/blob/master/README.md
<jsxgraph width="500" aspect-ratio="1/1">
var brd = JXG.JSXGraph.initBoard(BOARDID, {boundingbox:[-5,5,5,-5], axis:true});
var p = brd.create('point', [1,2]);
</jsxgraph>如果您已经安装了筛选器,则可能是因为示例中的box="jxgbox0"属性已被弃用。
boardid或box弃用此属性定义,JSXGraph的图形将具有哪个id。请在JavaScript块中使用存储在常量BOARDID中的id,特别是对于JXG.JSXGraph.initBoard(...)中的第一个参数。查看Usage.
上的示例
https://stackoverflow.com/questions/69876868
复制相似问题