Согласно комментариям выше, это не имело никакого отношения к версии jquery или iframe, но было из-за некоторого JS на моей странице в форме:
Object.prototype.someCustomFunction = function( aObjects ) { ...}
Стоит поделиться, как я решил это, если это кому-нибудь поможет. Секрет заключался в том, чтобы получить полную версию jquery, а не запутанную и сжатую, чтобы я мог легче отлаживать то, что происходило в jquery.
Я обнаружил, что в Sizzle.filter
jquery повторяется так:
for ( var type in Expr.filter ) {
if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) {
...
}
}
Дело в том, что jquery ожидает найти ATTR
, CHILD
, CLASS
и т. Д. Как type
. Но он также находит someCustomFunction
. И у someCustomFunction
нет exec
, поэтому он падает.
В настоящее время исправление взлома состоит в том, чтобы просто ввести пустой метод exec
для поиска jquery. например
Object.prototype.someCustomFunction.exec = function( expr ) {}
В долгосрочной перспективе я захочу ограничить someCustomFunction
тем местом, где оно действительно требуется, а не просто Object
.