在javascript代码中嵌入SVG
我有这个HTML代码,它调用了我的javascript代码。该代码用于仪表。在javascript代码中,我试图访问SVG文件,并修改指针(仪表的指针)以显示所需的值。代码运行良好。但是,我不希望调用onload();和HTML中的“对象id”。我只想在我的HTML文件加载后,自动调用javascript。我不想在html中调用任何东西(没有对象id,没有onload函数),除了body标记中的headline。我尝试了各种onload()方法,也尝试了这个链接 但无法实施。任何帮助都将不胜感激 附言:我尽了最大的努力来彻底解释这个问题。但是,如果我不清楚,请告诉我 这是Gauge.png图像,它嵌入在我粘贴在下面的svg代码中在javascript代码中嵌入SVG,javascript,html,svg,web,Javascript,Html,Svg,Web,我有这个HTML代码,它调用了我的javascript代码。该代码用于仪表。在javascript代码中,我试图访问SVG文件,并修改指针(仪表的指针)以显示所需的值。代码运行良好。但是,我不希望调用onload();和HTML中的“对象id”。我只想在我的HTML文件加载后,自动调用javascript。我不想在html中调用任何东西(没有对象id,没有onload函数),除了body标记中的headline。我尝试了各种onload()方法,也尝试了这个链接 但无法实施。任何帮助都将不胜感激
HTML+Javascript代码
SVG仪表示例
函数update1(){
var量表=100;
var值;
var值1=69;
var el=document.getElementById('gauge1');
如果(!el)返回;
/*从HTML元素获取SVG文档*/
var svg_doc=el.contentDocument;
如果(!svg_doc)返回;
/*旋转指针以显示给定值*/
var pineel\u el=svg\u doc.getElementById('pineel');
如果(!针_el)返回;
/*计算旋转角度(0->0%,260->100%)*/
value=parseInt(value1);
scale=parseInt(scale);
如果(值>比例)值=比例;
变量角度=值/刻度*260;
/*动态SVG变换*/
指针设置属性('transform','rotate('+angle+',62,62');
}
要避免onload
属性,可以使用load
事件:
<script type="text/javascript">
function update1() {
// ...
}
document.addEventListener('load', update1, true);
</script>
函数update1(){
// ...
}
document.addEventListener('load',update1,true);
要避免onload
属性,可以使用load
事件:
<script type="text/javascript">
function update1() {
// ...
}
document.addEventListener('load', update1, true);
</script>
函数update1(){
// ...
}
document.addEventListener('load',update1,true);
发生了什么错误?实际/预期的行为是什么?很难说出你在问什么,没有错误。如果您在屏幕上看到输出,您将看到当我们更改值时指针正在移动的预期行为。我只是想避免调用onload和html中的object id,希望将所有内容都转换为javascript。我不确定您对object id的意思。您想访问任何仪表,而不仅仅是gauge1
?这个id是在javascript代码中指定的,而不是在html文档中指定的,因此您可以将仪表的id作为参数传递给update
。我想访问图像“gauge.svg”,但我无法将其转换为javascript,因为var svg_doc无法检索它。您能对刚才提到的解决方案做进一步的说明吗?那么您想用javascript设置svg文件的路径吗?然后只需编写el.setAttribute('data','file.svg')
。有什么错误?实际/预期的行为是什么?很难说出你在问什么,没有错误。如果您在屏幕上看到输出,您将看到当我们更改值时指针正在移动的预期行为。我只是想避免调用onload和html中的object id,希望将所有内容都转换为javascript。我不确定您对object id的意思。您想访问任何仪表,而不仅仅是gauge1
?这个id是在javascript代码中指定的,而不是在html文档中指定的,因此您可以将仪表的id作为参数传递给update
。我想访问图像“gauge.svg”,但我无法将其转换为javascript,因为var svg_doc无法检索它。您能对刚才提到的解决方案做进一步的说明吗?那么您想用javascript设置svg文件的路径吗?然后只需编写el.setAttribute('data','file.svg')
。这只是设置onload处理程序的另一种方式。这就是OP的要求吗?据我所知,代码运行良好。但是,我不想调用onload()@yogu:worksfine.)非常感谢……(希望我有必要的声誉来投票支持你的答案)。。还有什么方法可以删除对象id吗?@YoguaddEventListener
不支持跨浏览器<代码>窗口。如果没有其他加载,则onload是最简单的方法handlers@Juan门德斯:没错,例如IE8不支持它。另一种解决方案是包含jQuery,然后使用$(update1)代码>。这只是设置onload处理程序的另一种方式。这就是OP的要求吗?据我所知,代码运行良好。但是,我不想调用onload()@yogu:worksfine.)非常感谢……(希望我有必要的声誉来投票支持你的答案)。。还有什么方法可以删除对象id吗?@YoguaddEventListener
不支持跨浏览器<代码>窗口。如果没有其他加载,则onload
是最简单的方法handlers@Juan门德斯:没错,例如IE8不支持它。另一种解决方案是包含jQuery,然后使用$(update1)代码>。
<script type="text/javascript">
function update1() {
// ...
}
document.addEventListener('load', update1, true);
</script>