Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/33.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 如何知道动态内容中发生CSS错误的位置,或者如何在出现CSS错误时停止脚本_Javascript_Css_Dynamic_Breakpoints - Fatal编程技术网

Javascript 如何知道动态内容中发生CSS错误的位置,或者如何在出现CSS错误时停止脚本

Javascript 如何知道动态内容中发生CSS错误的位置,或者如何在出现CSS错误时停止脚本,javascript,css,dynamic,breakpoints,Javascript,Css,Dynamic,Breakpoints,我正在使用JavaScript动态生成web应用程序的GUI。Firebug和Firefox Web Developer工具在检查最终结果或使用断点单步执行代码方面非常出色,但有一件事我不知道,那就是如何在CSS错误发生时捕获错误,以及错误发生的位置 例如,如果我的算法有错误,脚本可能会将“宽度”设置为-7px,或者将“左”设置为“NaNpx”。这会立即出现在Web Developer Extension错误控制台的“警告”列表中,但无法知道它发生在哪个元素上(除非我直观地看到样式错误元素的明显

我正在使用JavaScript动态生成web应用程序的GUI。Firebug和Firefox Web Developer工具在检查最终结果或使用断点单步执行代码方面非常出色,但有一件事我不知道,那就是如何在CSS错误发生时捕获错误,以及错误发生的位置

例如,如果我的算法有错误,脚本可能会将“宽度”设置为-7px,或者将“左”设置为“NaNpx”。这会立即出现在Web Developer Extension错误控制台的“警告”列表中,但无法知道它发生在哪个元素上(除非我直观地看到样式错误元素的明显结果。警告列表仅将其显示为“错误解析“宽度”的值”。声明已删除。-130px”带有时间戳和URL


如果静态CSS文件中出现错误声明,则会显示文件名和行号,但在动态情况下,这当然是不可能的。因此问题是,是否可能“中断”CSS错误?这可能意味着我想停止脚本,以便检查当前情况并观察变量值。有数千行代码,因此我无法轻松地放入一些警报或断点,因为很难知道从何处开始。

虽然无法中断CSS错误,但仍然可以记录不需要的值在开发人员工具控制台中,这样您可以更轻松地跟踪它们

您可以通过在Javascript代码中添加一些检查来实现这一点。因为我不知道您的代码,所以我添加了一些通用解决方案

负宽度的示例:

if (width < 0)
{
    console.log (width + ': You can log whatever you wish here, the element id, tagName, or index, for example, making it easier to find.');
}

此外,还可以在这些表达式上添加断点,并将断点配置为仅在给定表达式变为true时停止(例如:
isNaN(左)

如果你希望你的Web应用程序是跨浏览器兼容的,如果你找到一种方法来记录CSS警告和错误声明,你将总是在控制台中得到错误,因为特定的浏览器不会把另一个供应商的前缀视为有效声明。一个错误,在你提到的情况下,它会破坏我的应用程序,那么你有一个非常好的观点,当然值得记住,这样我在完成开发后就不会在代码中留下任何东西。这就是为什么如果你愿意,如果这样的东西作为某种调试器存在,那将是理想的。我明白你的观点,我不怀疑这样的工具或功能我们都会帮助我们的。我个人无法帮助你,只能让你记住我之前说过的观点。我认为你所寻找的东西只能在浏览器中找到。因为当浏览器解析CSS文件并在控制台中的特定跳过/修改行上弹出消息时,它应该会起作用。你的示例与我所做的非常接近已经这样了。看来这是唯一的办法,现在还可以。总比什么都没有好!
if (isNaN(left))
{
    console.log (left + ':You can log whatever you wish here, the element id, tagName, or index, for example, making it easier to find.');
}