Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript代码中嵌入SVG_Javascript_Html_Svg_Web - Fatal编程技术网

在javascript代码中嵌入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代码。该代码用于仪表。在javascript代码中,我试图访问SVG文件,并修改指针(仪表的指针)以显示所需的值。代码运行良好。但是,我不希望调用onload();和HTML中的“对象id”。我只想在我的HTML文件加载后,自动调用javascript。我不想在html中调用任何东西(没有对象id,没有onload函数),除了body标记中的headline。我尝试了各种onload()方法,也尝试了这个链接 但无法实施。任何帮助都将不胜感激

附言:我尽了最大的努力来彻底解释这个问题。但是,如果我不清楚,请告诉我

这是Gauge.png图像,它嵌入在我粘贴在下面的svg代码中


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吗?@Yogu
addEventListener
不支持跨浏览器<代码>窗口。如果没有其他加载,则onload是最简单的方法handlers@Juan门德斯:没错,例如IE8不支持它。另一种解决方案是包含jQuery,然后使用
$(update1)。这只是设置onload处理程序的另一种方式。这就是OP的要求吗?据我所知,代码运行良好。但是,我不想调用onload()@yogu:worksfine.)非常感谢……(希望我有必要的声誉来投票支持你的答案)。。还有什么方法可以删除对象id吗?@Yogu
addEventListener
不支持跨浏览器<代码>窗口。如果没有其他加载,则onload
是最简单的方法handlers@Juan门德斯:没错,例如IE8不支持它。另一种解决方案是包含jQuery,然后使用
$(update1)
<script type="text/javascript">
    function update1() {
        // ...
    }

    document.addEventListener('load', update1, true);
</script>