相关疑难解决方法(0)

DOMContentLoaded事件中的代码无法正常工作

我用过

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8" />
</head>
<body>
  <button type="button" id="button">Click</button>
  <pre id="output">Not Loading...</pre>

  <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.17.0/babel.min.js"></script>
  <script type="text/babel">
    document.addEventListener('DOMContentLoaded', function () {
      const button = document.getElementById('button');
      const output = document.getElementById('output');

      output.textContent = 'Loading...';

      addEventListener('click', function () {
        output.textContent = 'Done';
      });
     });
  </script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

但似乎里面的代码document.addEventListener('DOMContentLoaded', function () {});没有加载.

如果我从我的代码中删除它,它突然工作.

在这里做了一个JS Bin.

javascript addeventlistener domcontentloaded babeljs

18
推荐指数
2
解决办法
3万
查看次数

getSVGDocument在Chrome中返回NULL

我开始使用SVG,并且具有以下代码:

的HTML

<embed id="embed" src="svg.svg" type="image/svg+xml" width="400" height="300" >

<object id="object" data="svg.svg" type="image/svg+xml" width="400" height="300"></object>
Run Code Online (Sandbox Code Playgroud)

Java脚本

$(window).load(function (){
//alert("Document loaded, including graphics and embedded documents (like SVG)");

    var svgDoc_embed = document.getElementById("embed").getSVGDocument();
    alert("My svgDoc_embed => " + svgDoc_embed);

    var svgDoc_object = document.getElementById("object").getSVGDocument();
    alert("My svgDoc_object => " + svgDoc_object);  

});
Run Code Online (Sandbox Code Playgroud)

在FireFox浏览器中运行良好

My svgDoc_embed => [object SVGDocument]
My svgDoc_object => [object SVGDocument]
Run Code Online (Sandbox Code Playgroud)

但不适用于Chrome浏览器。

My svgDoc_embed => null
My svgDoc_object => null
Run Code Online (Sandbox Code Playgroud)

我已经搜索了Internet,但是找不到任何有效的方法

欢迎任何建议

================================================== ========================

我尝试打开Chrome JS控制台并输入:

document.getElementById ("object"). GetSVGDocument ();

结果为空。

还将代码更改为: …

javascript jquery svg

5
推荐指数
1
解决办法
1万
查看次数

如何知道<embed>元素的内容何时加载

我是以编程方式向<embed>我的HTML文档添加标记:

var e = document.createElement('embed');
e.src = "some-image.svg";
e.type = "image/svg+xml";
document.body.appendChild(e);
Run Code Online (Sandbox Code Playgroud)

这工作正常,SVG元素按预期显示.但是,我想用JavaScript操作SVG元素,并且在将元素添加到DOM后立即尝试这样做失败,因为内容尚未加载.

我怎样才能做到这一点.请注意,我想在没有jQuery的情况下这样做,所以请不要指向jQuery API.

javascript embed-tag

5
推荐指数
1
解决办法
7138
查看次数

如何在某些JS触发之前等待&lt;object&gt;中的SVG完成加载?

我的html中有这个(SVG约为500K):

<object type="image/svg+xml" data="/assets/images/test-diagram.svg" width="100%" height="100%" id="arm" class="svg-content"></object>
Run Code Online (Sandbox Code Playgroud)

我正在GitHub上使用脚本为SVG创建视口,以便可以在视口内平移和缩放,但与GoogleMaps一样。

https://github.com/ariutta/svg-pan-zoom

因此,加载顺序必须为:

  1. svg-pan-zoom.js完成
  2. 全部500k的svg需要完成加载
  3. 需要运行以下代码:

    var panZoomArm = svgPanZoom('#arm');

不幸的是,以上代码在SVG未完全加载时运行,从而导致错误。

我已经尝试过了,但是.load似乎不是为它而设计的<object>-实际上debugger从未触发过

$('#arm').load(function(){
    debugger
    var panZoomArm = svgPanZoom('#arm');
});
Run Code Online (Sandbox Code Playgroud)

这些方法让我告诉代码仅在完全下载500k svg之后才能运行吗?

对于我而言,可靠地触发此代码的唯一方法是使SVG完全内联...因此,这就像几百行代码一样,无法缓存。

编辑 - -

好的,我可以使用它,但是我很困惑。

这不起作用(调试器从不触发):

$('#arm').load(function(){
    debugger
    var panZoomArm = svgPanZoom('#arm');
});
Run Code Online (Sandbox Code Playgroud)

这有效:

var arm = document.getElementById("arm");
arm.addEventListener('load', function(){
    debugger
    var panZoomArm = svgPanZoom('#arm');
});
Run Code Online (Sandbox Code Playgroud)

javascript jquery svg

5
推荐指数
1
解决办法
4708
查看次数

有更改图像JavaScript的问题

我是JavaScript的新手,我在更改html文档上的图像方面遇到了问题.我知道为了更改图像,我需要更改img的src属性.

我有一个名为"magenta.jpg"的图像,我想在页面加载时用"fuschia.jpg"替换它.

我的HTML

<img src="magenta.jpg" name="photo" id="photo">
Run Code Online (Sandbox Code Playgroud)

我的JavaScript

document.getElementById("photo").src = "fuschia.jpg";
Run Code Online (Sandbox Code Playgroud)

当我尝试这样做时,我收到一条错误消息:

未捕获的TypeError:无法设置null的属性'src'

你能帮我理解代码出了什么问题,以及如何修复它?

javascript debugging

-1
推荐指数
1
解决办法
81
查看次数