繁体   English   中英

我如何知道哪个JavaScript框架正在验证网站上的表单

[英]How do I tell which javascript framework is validating forms on a website

我正在尝试构建一个Chrome扩展程序,以将数据输入到toyrus.com和macys.com等网站的在线表单中。 chrome扩展程序可以将javascript注入网站以进行测试。 我正在尝试确定正在使用哪个框架在网站上进行表单验证。

我必须更改输入字段,例如为州选择“ CA”,或使用javascript输入姓氏。 但是,如果我不知道他们使用的是什么系统,我将无法做到这一点。 每个框架都有其自己的规则,用于更改输入字段并在框架中进行更改注册。

我正在尝试查看是否有任何方法可以判断哪个框架正在执行验证,因此我可以使用正确的命令。

就Toysrus.com而言,prototype.js和jquery都按照是否存在变量jQuery或Prototype进行检测,但我必须使用原型语法来获取和更改表单而不是jquery的值。 我不得不通过大量的尝试和错误来手动执行此操作。

有什么我可以写并注入页面的JavaScript来告诉您正在使用哪个框架来验证这些网站上的表单。

我注意到在$(“#elementid”)以上返回null的情况下,但是$(“ elementid”)返回了实际元素。 那告诉我原型正在做实际的验证。 是否有任何测试或js库可以确定元素上使用的框架?

mate,对于您的具体情况,您的原型和jquery与美元符号冲突,

只是这样做:

<!-- Another way to put jQuery into no-conflict mode. -->
<script src="prototype.js"></script>
<script src="jquery.js"></script>
<script>

jQuery.noConflict();

jQuery( document ).ready(function( $ ) {
// You can use the locally-scoped $ in here as an alias to jQuery.
$( "div" ).hide();
});

// The $ variable in the global scope has the prototype.js meaning.
window.onload = function(){
  var mainDiv = $( "main" );
}

</script>

`

更新:队友,如果您坚持使用框架,将无法保证解决方案,唯一可行的方法是使用纯JavaScript,即纯javascript!

首先,除非您要做复杂的事情需要框架,否则仅使用document.querySelector()document.querySelectorAll()并使用纯Javascript而不用担心框架可能是最简单的。

如果您确实想确定存在哪个框架,则可以为每个框架开发功能测试,并按照您关心的顺序对其进行测试。

例如:

if (typeof jQuery !== "undefined") {
    // jQuery present
} else if (typeof angular !== "undefined") {
    // angular present
} else if (typeof Prototype !== "undefined") {
    // Prototype present
} else if (typeof dojo !== "undefined") {
    // dojo present
} else {
    // don't see any framework
}

根据您要尝试执行的操作,每个框架也可能有更全面的测试。

仅供参考,在一个陌生的网页使用jQuery的时候,我会建议使用jQuery为您的根标识符,而不是$作为jQuery(...)而不是$(...) 如果其他框架正在使用$则可以避免感到困惑。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM