我在jsbin.com上的浏览器JavaScript引擎有什么问题?

时间:2016-08-18 18:43:08

标签: javascript html jsbin

我是JavaScript新手。我正在尝试将文字添加到p代码中,并使用该ID进行定位。现在,使用document.getElementById('text').innerHTML,当我设置包含do字词的文字时,它会返回p标记中的原始文字。

document.getElementById('text').innerHTML='as I add??? do';
<p id="text" class="abc">Hello</p>

仅在do之间出现这种情况。 Here's a GIF explaining the issue:

enter image description here

我希望我做得对。但是,可能会有一些怪异的东西在弄乱我。

2 个答案:

答案 0 :(得分:3)

由Juhana和jsbin member在github上评论,它是false positive,这可以通过在代码中添加// noprotect来实现。

例如

console.clear(); 
document.getElementById('abc').innerHTML = 'this is abc do '; 

// noprotect

p.s。 截至目前,我们要解决循环保护问题,直到它得到解决。

答案 1 :(得分:1)

使用时

document.getElementById("text").innerHTML = "abc a d";

他们加载这个文件(我的格式很漂亮):

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <title>JS Bin</title>
    <style id="jsbin-css"></style>
  </head>
  <body>
    <p id="text">Hello</p>
    <script>
    try {
      document.getElementById("text").innerHTML = "abc a d";
    } catch (error) {
      throw error;
    }
    //# sourceURL=wecinoqeje.js
    </script>
  </body>
</html>

但是当你使用do时,他们会完全搞砸你的代码。

document.getElementById("text").innerHTML = "abc a do";

他们可能认为它是do-while,因为他们有一种称为“循环保护”的东西。加载的文档是

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <title>JS Bin</title>
    <style id="jsbin-css"></style>
  </head>
  <body>
    <p id="text">Hello</p>
    <script>
    try {
      {
        ;
        window.runnerWindow.protect.protect({
          line: 1,
          reset: true
        });
        document.getElementById("text")
        {
          if (window.runnerWindow.protect.protect({ line: 1 }))
            break;
          .innerHTML = "abc a do";
        }
      }
    } catch (error) {
      throw error;
    }
    //# sourceURL=wecinoqeje.js
    </script>
  </body>
</html>

这是一个语法错误。所以你的代码没有运行。