Javascript 如何记录元素的角度?
我正在处理一个Angular应用程序,我有一个视图,其中包含一个iframe(该iframe的目的只是显示一个登录表单) 就像我尝试手动提交表单失败一样,我尝试记录表单以检查我是否真的能够访问它,但我不知道如何做到这一点 iframe中的表单具有name属性myFormJavascript 如何记录元素的角度?,javascript,angularjs,iframe,Javascript,Angularjs,Iframe,我正在处理一个Angular应用程序,我有一个视图,其中包含一个iframe(该iframe的目的只是显示一个登录表单) 就像我尝试手动提交表单失败一样,我尝试记录表单以检查我是否真的能够访问它,但我不知道如何做到这一点 iframe中的表单具有name属性myForm <iframe id="myIframe" name="myIframe" src="someUrl.com"> <html> ... <form name="myF
<iframe id="myIframe" name="myIframe" src="someUrl.com">
<html>
...
<form name="myForm" class="form" action="myAction()" method="post" onsubmit="myStuffToDO()">
...
...
</form>
...
</html>
</iframe>
hte控制台中的结果是:
[]
我真的不知道该怎么做,所以任何帮助都是很好的。.find('myForm')
将查找
标记,而不是带有“myForm”值属性的标记.find('[name=“myForm”]')
是您正在寻找的,但它无法与内置实现一起工作,因为正如文档中所述,.find
仅限于按标记名进行查找。
这意味着您还需要在项目中包括jQuery。然后Angular将使用它而不是它的jqLite实现,复杂选择器将工作。您可以使用表单名称访问,其作用域如下:
console.log($scope.formName);
您可以通过formName对象中的名称访问所有元素。在页面中,您可以通过angular.element+jquery选择器访问angular元素
例如:angular.element(“[name='myForm']”)action属性在代码段中缺少一个结束双引号。如果jquery已经包含在项目中,那么find('[name='myForm'])应该可以工作?如果它不工作,这可能是因为jquery没有包含在iframe所针对的远程应用程序中,或者是不可能的?所以
iframe
从另一个域加载内容,而您正试图从外部在其中执行JS内容?然后有两种情况:要么JS在外部,您可能有跨域权限问题,要么JS在内部,您没有jQuery?你想举个例子吗?做一个document.getElementById('myTable')
然后在表中添加一个id=“myTable”
?谢谢你的帮助,但它不起作用,可能是因为它在一个iframe中,代码在标准JavaScription中。你试过普通JS,document.getElementByTagName('myForm')吗?我已经试过了,但不起作用,看看@Sergiu Parachiv的答案,也许你知道另一种方法?
console.log($scope.formName);