2015-11-17 56 views
0

我正在使用twitter撷取者Jason Mayes,但截至今天早上,twitter似乎已改变他们如何传送twitter资讯提供的个人资料图片。使用javascript更新src

我仍然只是一个JavaScript的初学者,我已经研究了他的代码,但无法看到他从哪里画的个人资料图片,所以我写了一个函数,它从img(Illustrated下面)并将其应用于src属性。

不幸的是,我不得不做错事,因为它似乎没有行动。我得到这个在JS斌错误:

类型错误:无法读取属性“0”空的

什么我可能是做错了什么建议?

我的功能:

function profileImageFix(profileImage) 
    { 
     profileImage = document.getElementsByClassName("user")[0].getAttribute("data-src-1x")[0]; 

     document.getElementsByClassName("user")[0].setAttribute(src, profileImage); 
    } 
    profileImageFix(); 

的HTML经由Twitter的饲料拉是:

<div class="user"> 
     <a href="https://twitter.com/" aria-label="twitter (screen name: twitter)" data-scribe="element:user_link" target="_blank"> 
     <img alt="" data-src-1x="https://pbs.twimg.com/profile_images/661484218843953664/_B24ia6H_normal.png" data-src-2x="https://pbs.twimg.com/profile_images/661484218843953664/_B24ia6H_bigger.png" data-scribe="element:avatar"> 
     <span> 

     <span data-scribe="element:name">twitter</span> 
     </span> 
     <span data-scribe="element:screen_name">@twitter</span> 

     </a> 
    </div> 
+0

'getElementByTagName' ==>'getElementsByTagName'(增加's'),它返回一组元素。使用'document.querySelector('。user a img')。src = profileImage;' – Tushar

+0

你在混合使用vanilla Javascript和jQuery('document。$(selector)'),而且getAttribute'会是一种方法你可以像getAttribute(“data-src-1x”)一样调用。除非是jQuery,否则应该使用'attr(“data-src-1x”)或'data(“src-1x”)'。但请查看Javascript控制台(按F12)以查看您得到的错误。这里有很多简单的错误,你可以(也应该)至少知道你自己。 – GolezTrol

+1

嗨@GolezTrol我正在使用JS bin来帮助我诊断任何问题,但它并没有帮助我那么多。尽管如此,我会将您的评论留在板子上,并继续将我的教育转化为javascript以及jquery带来的差异。 – BoBFiSh

回答

2

Twitter的提取程序的最新版本在撰写本文时(版本14.0),现在支持修正以在Twitter更改格式后再次显示用户头像。你可以抓住从GitHub最新版本在这里:https://github.com/jasonmayes/Twitter-Post-Fetcher/blob/master/js/twitterFetcher_min.js

这是由Twitter撷取的amending line 175解决如下:

avatarImg.src = avatarImg.getAttribute( '数据-SRC-2X');

+0

感谢您的更新。我在github上关注了这一点,并且最近应用了更新,但请欣赏后续答案。 – BoBFiSh

2

试试这个....

$("#imageID").attr('data-src-1x', 'Your src');