代码之家  ›  专栏  ›  技术社区  ›  icco

如何正确测试JavaScript小部件?

  •  6
  • icco  · 技术社区  · 14 年前

    所以,我编写了一个小的javascript小部件。用户所要做的就是将脚本标记粘贴到页面中,然后在它的正下方插入一个DIV,其中包含用户请求的所有内容。

    很多网站都会做类似的事情,比如Twitter、Delicious甚至StackOverflow。

    我好奇的是如何测试这个小部件,以确保它能在每个人的网页上正常工作。我没有使用iframe,所以我真的希望确保在插入大多数位置时,此代码都能正常工作。我知道它在所有浏览器中看起来都一样。

    建议?或者我应该只构建一百个网页并插入我的脚本标记,看看它是否有效?我希望有比这更容易的方法。

    3 回复  |  直到 14 年前
        1
  •  1
  •   Daniel Vandersluis    14 年前

    一旦您确认您的javascript在受控环境中跨浏览器工作,以下是一些在实际网站上使用时可能导致问题的事情:

    CSS

    • 您使用的CSS类已被目标网站使用(用于其他目的)
    • 你使用的定位可能会干扰网站的CSS
    • 您使用的元素是由网站的CSS设计的(您可能希望使用某种类型的 "reset" 仅适用于小部件的CSS)

    HTML

    • 您正在创建具有相同内容的元素 id 属性作为网站上已存在的元素
    • 你在指定 name 已经在使用的属性(while 名称 可用于多个元素,您可能不希望如此)

    JavaScript

    • 如果没有启用javascript,预期的行为是什么?如果您的脚本创建了所有内容,那么没有JS就没有任何内容可以接受吗?
        2
  •  1
  •   ankitjaininfo    14 年前

    在非常基本的情况下,您应该确保您的小部件适用于以下测试用例。我相信它会在所有网页上运行-

    • HTTP/HTTPS :对于未加密内容的https页面不应出现任何警告。
    • <脚本>/<无脚本> :如果禁用了javascript怎么办?您的小工具仍然可见吗?
    • 第三方曲奇 被禁用了吗?你的小工具还能用吗?
    • 布局框限制:当父DIV元素的大小小于小部件时。您的小部件是否溢出了给定的大小并破坏了所有者页面?
        3
  •  0
  •   Community Lee    7 年前

    通过使用 非常 唯一的名字,你应该很好。另外,如果你只想打印出一些东西,你可以简单地使用一个匿名函数。

    类似问题: How to avoid name clashes in JavaScript widgets