我正在开发一个应用程序,它从RSS提要(xml)获取数据,这意味着我无法控制它附带的内容,我正在使用Google Api for feeds来检索数据JSON格式,我正在使用jQuery(feeder.js)生成带有信息的结果html。
生成的html进入我的PhoneGap项目,一切正常。
现在唯一的问题是,在从RSS检索到的信息中,有时会有一些链接到达任何地方(例如:facebook,twitter,个人网站,报纸等)。
馈线提供元素内的所有内容,包含标题,段落,链接等。
我现在需要的是一种在文章中定位此链接的方法,并调用window.open事件,或者在外部浏览器中打开链接的任何工作。
feeder.js生成的html结构如下:
<article>
<h2>Title</h2>
<p>Content</p>
<a href="http://facebook.com">This link here!</a>
<p>More content</p>
</article>
正如你所看到的那样,没有类或id来定位单个元素,因为它们在这里显示为指向。
到目前为止,我正在使用最新版本的Android SDK和PhoneGap。
基本上我需要做的是定位元素&lt; a&gt;在&lt;文章&gt;并为他们提供新的浏览器窗口事件。
对任何需要一分钟帮助我的人致以最诚挚的问候,欢呼!
答案 0 :(得分:3)
在这里和google进行了大量研究之后,我想出了以下内容。
除了我的应用程序中显示的内容外,还有一个带有onClick事件的后退按钮,我使用此按钮定义一个功能,并调用以文章内部链接为目标的事件。顺便说一句,按钮有一个#href属性。
执行此操作后,我通过&#34; attr&#34;添加了onClick事件,之后将href属性保留为#。
脚本如下:
function button(){
var button = $(location).attr('href');
button = button+'#';
$('#articles a').each(function(){
if(this != button){
$(this).attr("onClick", "navigator.app.loadUrl('"+this+"', { openExternal:true });");
$(this).attr("href", "#");
}
});
}
在onClick中,我调用了用于打开新浏览器窗口的事件,在我的phonegap版本中是&#34; navigator.app.loadUrl&#34;
现在每当html加载RSS提要内容时,它内部会显示一些链接显示:
&LT; a onclick =&#34; navigator.app.loadUrl(&#39; https://google.com/&#39;,{openExternal:true});&#34;&gt;链接&lt; / A&GT;
这将打开一个对话框,用户可以在其中选择他想要使用的浏览器。
再次感谢那些不厌其烦地回答我的问题!
答案 1 :(得分:0)
如果您使用Jquery,您可以使用此功能:
<script>
$(document).on('click', 'a', function(e) {
if ($(this).attr('target') !== '_blank') {
e.preventDefault();
window.location = $(this).attr('href');
}
});
</script>
如果您在应用中使用jQuery Mobile,请务必在rel="external"
标记中添加<a>
。
希望它有所帮助,询问是否有什么不起作用。快乐的编码!