如何检查 iframe 中的锚标记是否包含 URL
How to check whether anchor tags within an iframe contain a URL
我正在处理一个通过CGI系统动态生成的页面,该网站的真正开发人员没有时间为我更改python代码。也就是说,我被迫构建页面(同一域)并使用一些 JavaScript 来修改其内容......现在,我正在尝试查找包含 URL 的锚标签并将目标属性设置为"_top"。这样,页面上打开菜单等的锚点将加载到框架内,并且指向异地的任何内容都将加载到整个窗口中。这是我尝试过的:
function pointOutside(){
var anchorS = window.frames[0].document.getElementsByTagName("a");
for(i=0;i<anchorS.length;i++){
var foo = anchorS[i].getAttribute('href');
foo = foo.toString();
if(foo.search(/http/i) != -1){
anchorS[i].setAttribute('target','_top');
};
};
};
setTimeout("pointOutside()",2000);
超时为帧的内容提供了足够的时间来加载,然后再调用它,但是我遇到麻烦的地方是检查href属性是否以" http"开头。我最初尝试在没有"foo = foo.toString();"行的情况下这样做,但收到错误,如"未捕获的类型错误:无法在 null 上调用方法'搜索'"。我心想,"啊哈,我会确保它是一根绳子!"但没有运气。现在当我调用 toString()..."未捕获的类型错误:无法调用 null 的 methor 'toString'。"
奇怪的是,为了确保我的选择器正常工作,我使用了"alert(foo)",并且能够为每个锚标记获取一个弹出窗口,显示 href 属性的值。
不知道我在这里出了什么问题。任何帮助将不胜感激。
首先,如果你在该浏览器窗口中有任何可用的javascript框架,请使用DOMReady函数(如jQuery的.ready http://api.jquery.com/ready/)来利用它们
。此外,您需要考虑返回不同值的 .href 和 .getAttribute('href')。 例如,在 Chrome 中,.href 返回您点击链接后将导航到的网址。 但是,.getAttribute('href')返回锚标记中的实际内容,这可能是一个相对URL。
最后,您出现异常的原因是页面上可能有一些锚点没有 href,并且纯粹是出于结构目的。 对于这些元素,您可以在尝试使用 .toString() 之前插入一行,如下所示:
if (typeof foo !== "string") { continue; }
如果 for 链接上未设置 href,则 continue 语句会导致 for 循环忽略该链接并继续执行循环的下一次迭代。
- 遍历 JSON 对象并检查 URL 是否以某个值结尾
- 如何检查这个代码点火器php函数是否工作,该函数是否在ajax url中使用
- 检测图像URL是否已损坏JQUERY
- 是否可以添加<脚本>添加'_someTag'到iFrame中的URL
- 检查蒸汽配置文件url是否有效
- 检查用户是否正在访问纯根url
- 如何检查 iframe 中的锚标记是否包含 URL
- JavaScript 是否能够像在 windows.location 中解析当前 URL 一样解析任意 URL
- 是否可以使用javascript从浏览器获取访问的上一页的URL
- 是否可以更改更改特定事件在地址栏或浏览器中的URL
- URL 长度是否会导致页面加载时间不同
- 是否存在用于解析 URL 路径段(矩阵)参数的 JavaScript 库
- Javascript检查url是否存在并检查其上显示的一些信息
- SEO机器人是否总是遵循A标签的href属性中的URL,即使点击/点击被Javascript拦截
- 使用 POST 方法通过 ajax 发送的数据在发送到服务器之前是否必须进行 URL 编码
- 检查上一个(-1&-2)url是否包含字符串
- Angular-使字符串对URL安全-路由是否正确
- 检查D3.js中的函数中是否存在URL
- 如何检查url是否包含多个字符串.Javascript/jquery
- 使用regex验证字符串是否URL安全