maxthon2.0 delicious sidebar验证失败

最近安装maxthon2.0,用来其delicious sidebar插件,原来工作正常,现在出现问题,卸载house重新安装sidebar,出现验证无法通过。检查其Delicious.js代码,由于原有网址http://del.icio.us,改为http://delicious.com/,所以无法验证,验证时必须有http://delicious.com/yourname网页打开,而且添加网址时标题不能超过255个字节。修改js如下:

  1. /**************************
  2.     Del.icio.us Sidebar
  3.     By Neo101
  4.     Version 1.2.1
  5. **************************/
  6. checkSettingsFile()
  7. var authUser = readSetting('authUser')
  8. var split = authUser.split('%20')
  9. var userName = split ? split[0] : ''
  10.     
  11. var showTooltip = readSetting('showTooltip''1')
  12. var autoUpdateTime = parseInt( readSetting('autoUpdateTime''0') )
  13. if( isNaN(autoUpdateTime) ){
  14.     autoUpdateTime = 0
  15. }
  16. var sortTags = readSetting('sortTags''1')
  17. var sortFavorites = readSetting('sortFavorites''1')
  18. var useBundles = readSetting('useBundles''1')
  19.     
  20. var baseURL = 'https://api.del.icio.us/v1/'
  21. var favoritesCache = 'cache/favorites.html'
  22. var favoritesHTML = ''
  23. var posts = new Array()
  24. var bundleArray = new Array()
  25. var branch = 0
  26. var xmlhttp
  27. var editElement
  28. var isAddFavorite = true
  29. var TRUE = '1'
  30. var FALSE = '0'
  31. // var deliciousURL = 'http://del.icio.us/';
  32. var deliciousURL = 'http://delicious.com/'
  33. var deliciousSettingURL = 'https://secure.delicious.com/settings/'
  34. window.onload = function(){
  35.     if(authUser == ''){
  36.         displaySettings()
  37.         document.getElementById('settingsLinks').style.display = 'none'
  38.         document.getElementById('mainSettings').style.display = 'none'
  39.         document.getElementById('links').style.display = 'none'
  40.         document.getElementById('aboutDelicious').style.display = ''
  41.     } else {
  42.         viewFavorites()
  43.         getLastUpdateTime()
  44.         setLinks()
  45.     }
  46.     
  47.     setAutoUpdate()
  48.     
  49.     
  50.     //clean old login data
  51.     if(readSetting('userName''') != ''){
  52.         writeSetting('userName''')
  53.         writeSetting('password''')
  54.     }
  55. }
  56. function setLinks(){
  57.     document.getElementById('yourFavoritesLink').href = deliciousURL + userName
  58.     document.getElementById('yourNetworkLink').href = deliciousURL + 'network/' + userName
  59.     document.getElementById('importBookmarksLink').href = deliciousSettingURL + userName + '/bookmarks/import'
  60.     document.getElementById('exportBookmarksLink').href = deliciousSettingURL + userName + '/bookmarks/export'
  61.     document.getElementById('editBundleLink').href = deliciousSettingURL + userName + '/tags/bundle?noredir'
  62. }
  63. function setAutoUpdate(){
  64.     if(autoUpdateTime < 5){
  65.         return
  66.     }
  67.     var time = autoUpdateTime * 1000 * 60
  68.     window.setInterval(getLastUpdateTime, time)
  69. }
  70. function loadXMLDoc(url, type, stateChange, data){
  71.     if(authUser == ''){
  72.         showError('User information not defined!')
  73.         return
  74.     }
  75.     try{
  76.         xmlhttp = external.max_activex(SECURITY_ID, "Microsoft.XMLHTTP")
  77.     }
  78.     catch(err){
  79.         try{
  80.             xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")
  81.         }
  82.         catch(err){
  83.             showError('Could not load ActiveX object')
  84.         }
  85.     }
  86.     xmlhttp.onreadystatechange = stateChange
  87.     xmlhttp.open("POST", url, true'cookie''cookie')
  88.     xmlhttp.setRequestHeader('User-Agent''Maxthon del.icio.us sidebar plugin')
  89.     xmlhttp.setRequestHeader('Content-Type''application/x-www-form-urlencoded')
  90.     xmlhttp.setRequestHeader('Referrer''Maxthon del.icio.us sidebar plugin')
  91.     
  92.     var data = '_user=' + authUser
  93.     xmlhttp.send(data)
  94.     
  95. }
  96. function checkReadyState(obj){
  97.     if(obj.readyState == 4){
  98.         //alert(obj.responseText)
  99.         if(obj.status == 200 || obj.status == 201){
  100.             return true;
  101.         }
  102.         else if(obj.status == 401 || obj.status == 403){
  103.             var message = 'Could not login. Please check your '+
  104.                 '<a href="#" οnclick="displaySettings()" style="color:red;text-decoration:underline">login information!</a>'
  105.             showError(message)
  106.             document.getElementById('favorites').innerHTML = message
  107.             writeFile(favoritesCache, '')
  108.         }
  109.         else if(obj.status == 503){
  110.             showError('Error 503: Please try again in a couple of minutes..')
  111.         }
  112.         else{
  113.             showError(obj.status + ' ' + obj.responseText);
  114.         }
  115.     }
  116. }
  117. function getLastUpdateTime(){
  118.     var url = baseURL + 'posts/update?' + Math.round(Math.random() * 1000)
  119.     
  120.     showError('Checking for updates...')
  121.     loadXMLDoc(url, 'getLastUpdateTime', onResponseGetLastUpdateTime)
  122. }
  123. function onResponseGetLastUpdateTime(){
  124.     if( ! checkReadyState(xmlhttp) ){
  125.         return
  126.     }
  127.     
  128.     var responseXML = xmlhttp.responseXML
  129.     if( responseXML == null ){
  130.         showError('Error loading XML')
  131.         return
  132.     }
  133.     
  134.     try{
  135.         var lastUpdateTime = responseXML.getElementsByTagName("update")[0].getAttribute('time'
  136.     } catch(err){
  137.         showError('bad response getting time...')
  138.         alert(xmlhttp.responseText)
  139.         return
  140.     }
  141.     
  142.     var previousUpdateTime = readSetting('UpdateTime')
  143.     if( previousUpdateTime != lastUpdateTime){
  144.         showError('Update available')
  145.         writeSetting('UpdateTime', lastUpdateTime)
  146.         window.setTimeout(updateFavorites, 1000)
  147.     }else {
  148.         showError('No favorite updates')
  149.     }
  150. }
  151. function viewFavorites(){
  152.     var html = unescape( readFile(favoritesCache) )
  153.     if(html == null || html == ''){
  154.         writeSetting('UpdateTime''')
  155.         return
  156.     }
  157.     favoritesHTML = html
  158.     currentlyOpenFolder = null
  159.     document.getElementById('favorites').innerHTML = html
  160. }
  161. function getBundles(){
  162.     var url = baseURL + 'tags/bundles/all?' + Math.round(Math.random() * 1000)
  163.     
  164.     showError('Checking for bundles...')
  165.     loadXMLDoc(url, 'getBundles', onResponseGetBundles)
  166. }
  167. function onResponseGetBundles(){
  168.     if( ! checkReadyState(xmlhttp) ){
  169.         return
  170.     }
  171.     var responseXML = xmlhttp.responseXML
  172.     if( responseXML == null ){
  173.         showError('Error loading Bundle XML')
  174.         return
  175.     }
  176.     
  177.     bundleArray = new Array()
  178.     
  179.     var bundleTags = responseXML.getElementsByTagName("bundles")[0].childNodes
  180.     for(var i=0; i<bundleTags.length; i++){
  181.         bundleArray.push( new Array( bundleTags[i].getAttribute('name') , bundleTags[i].getAttribute('tags') ) )
  182.     }
  183.     window.setTimeout(downloadFavorites, 1000)
  184. }
  185. function updateFavorites(){
  186.     if(useBundles == '1'){
  187.         getBundles()
  188.     } else {
  189.         downloadFavorites()
  190.     }
  191. }
  192. function downloadFavorites(){
  193.     var url = baseURL + 'posts/all?' + Math.round(Math.random() * 1000)
  194.     
  195.     showError('Updating...')
  196.     loadXMLDoc(url, 'viewFavorites', onResponseViewFavorites)
  197. }
  198. function onResponseViewFavorites(){
  199.     if( ! checkReadyState(xmlhttp) ){
  200.         return
  201.     }
  202.     var responseXML = xmlhttp.responseXML
  203.     if( responseXML == null ){
  204.         showError('Error loading XML')
  205.         return
  206.     }
  207.     var response = ''
  208.     
  209.     posts = new Array()
  210.     
  211.     items = responseXML.getElementsByTagName("post"); 
  212.     if(items && items.length != 0 ){
  213.         for(var j=0; j < items.length; j++) {
  214.             addPost(items[j], posts)
  215.         }
  216.     }
  217.     else{
  218.         response += '<b>No favorites found</b>'
  219.     }
  220.     
  221.     var tags = new Array()
  222.     
  223.     addPostsToTags( posts, tags )
  224.     
  225.     if(sortTags == '1'){
  226.         tags.sort()
  227.     }
  228.     
  229.     response += writeTree( tags )
  230.     
  231.     writeFile(favoritesCache, escape( response ))
  232.     
  233.     favoritesHTML = response
  234.     
  235.     showError('Favorites Downloaded')
  236.     
  237.     document.getElementById('favorites').innerHTML = response
  238.     currentlyOpenFolder = null
  239.     
  240.     document.getElementById('searchbox').value = ''
  241. }
  242. function titleSort(a, b){
  243.     try{
  244.         a = a.description.toLowerCase()
  245.         b = b.description.toLowerCase()
  246.         if(a < b){
  247.             return -1
  248.         } else {
  249.             return 1
  250.         }
  251.     }
  252.     catch(err){
  253.         return 1
  254.     }
  255. }
  256. function addPostsToTags( postsArray, tagsArray ){
  257.     for(var i=0; i<postsArray.length; i++){
  258.         var tags = postsArray[i].tag.toLowerCase()
  259.         var tagArray = tags.split(' ')
  260.         for(var j=0; j<tagArray.length; j++){
  261.             var position = inArray(tagArray[j], tagsArray)
  262.             if( position >= 0 ){
  263.                 tagsArray[position][1].push( postsArray[i] )
  264.             } else {
  265.                 tagsArray.push(new Array( tagArray[j], new Array( postsArray[i] ) ) )
  266.             }
  267.         }
  268.     }
  269. }
  270.     
  271.     
  272. function writeTree( tagsArray ){
  273.     var html = ''
  274.     var unfiledHtml = ''
  275.     
  276.     for(var i=0; i<bundleArray.length; i++){
  277.         var name = bundleArray[i][0]
  278.         var tags = bundleArray[i][1].toLowerCase().split(' ')
  279.         
  280.         var branchNumber = branch + 10000
  281.         
  282.         html += returnFolderHtml(branchNumber, name, true)
  283.         html += addTags( tags , tagsArray )
  284.         html += '</div>/n'
  285.         branch++
  286.     }
  287.     
  288.     forvar i=0; i<tagsArray.length; i++ ){
  289.         if(tagsArray[i][0] == 'system:unfiled'){
  290.             unfiledHtml = addLinks( tagsArray[i][1] )
  291.             continue
  292.         }
  293.         html += returnTagHtml(tagsArray[i], true)
  294.     }
  295.     html += unfiledHtml
  296.     
  297.     return html
  298. }
  299. function returnFolderHtml(number, name, isBundle){
  300.     if(isBundle != null){
  301.         var imageSrc = 'images/bundleClosed.gif'
  302.     } else {
  303.         var imageSrc = 'images/folderClosed.gif'
  304.     }
  305.     return '<div class="trigger" οnclick="expandCollapse(' + number + ')" οncοntextmenu="showContextMenu(this);return false" '+
  306.                     'οnmοuseοver="this.style.textDecoration=/'underline/'" οnmοuseοut="this.style.textDecoration=/'none/'">'+
  307.                 '<img src="' + imageSrc + '" border="0" id="folder' + number + '">'+
  308.                 name + 
  309.             '</div>/n<div class="branch" id="branch' + number + '">'
  310. }
  311. function addTags( tags, tagsArray){
  312.     var html = ''
  313.     
  314.     for(var i=0; i<tags.length; i++){
  315.         var position = inArray(tags[i], tagsArray)
  316.         if(position > -1){
  317.             html += returnTagHtml( tagsArray[position] )
  318.         }
  319.         tagsArray.splice(position, 1)
  320.     }
  321.     
  322.     return html
  323. }
  324. function returnTagHtml(tag, isHighBranch){
  325.     if(isHighBranch != null){
  326.         var branchNumber = branch + 10000
  327.     } else {
  328.         var branchNumber = branch
  329.     }
  330.     var html = returnFolderHtml(branchNumber, tag[0] )
  331.     html += addLinks( tag[1] )
  332.     html += '</div>/n'
  333.     branch++
  334.     return html
  335. }
  336. function addLinks(items){
  337.     var html = ''
  338.     
  339.     if(sortFavorites == '1'){
  340.         items.sort(titleSort)
  341.     }
  342.     
  343.     
  344.     for(var i=0; i<items.length; i++){
  345.         var item = items[i]
  346.         html += '<div class=linkDiv οncοntextmenu="showContextMenu(this);return false">'+
  347.                     '<a class=link href="' + item.href + '" target=_blank title="' + item.tooltip + '" '+
  348.                             'οnmοuseοver="showLink(this.href)" οnmοuseοut="hideLink()" '+
  349.                             'extended="' + item.extended + '" tag="' + item.tag + '" hashCode="' + item.hash + '">'+
  350.                         '<img src="images/page.gif">' +
  351.                         item.description +
  352.                     '</a>'+
  353.                 '</div>/n'
  354.     }
  355.     return html
  356. }
  357. function addPost( item , array){
  358.     var href = item.getAttribute('href')
  359.     var description = item.getAttribute('description')
  360.     var tag = item.getAttribute('tag')
  361.     var time = item.getAttribute('time')//.substring(0,10)
  362.     var hash = item.getAttribute('hash')
  363.     var extended = item.getAttribute('extended')
  364.     if(extended == null){
  365.         extended = ''
  366.     }
  367.     
  368.     // times like 2004-09-16T00:00:00Z
  369.     var date = new Date()
  370.     date.setISO8601(time)
  371.     time = date.toLocaleString()
  372.     
  373.     
  374.     if(showTooltip == '1'){
  375.         var tooltip = 'Added: ' + time
  376.         
  377.         var MAX_DESCRIPTION_LENGTH = 30
  378.         
  379.         if(description.length > MAX_DESCRIPTION_LENGTH){
  380.             tooltip = description + '/n' + tooltip
  381.         }
  382.         
  383.         if(extended){
  384.             tooltip += '/nNote: ' + extended
  385.         }
  386.     } else {
  387.         var tooltip = ''
  388.     }
  389.     
  390.     array.push( {'href':href,
  391.                 'description':description,
  392.                 'tag':tag,
  393.                 'time':time,
  394.                 'hash':hash,
  395.                 'extended':extended,
  396.                 'tooltip':tooltip
  397.                 } )
  398. }
  399.     
  400. function onResponsePostFavorite(){
  401.     if( ! checkReadyState(xmlhttp) ){
  402.         return
  403.     }
  404.     var responseXML = xmlhttp.responseXML
  405.     if( responseXML == null ){
  406.         showError('Error loading XML')
  407.         return
  408.     }
  409.     
  410.     try{
  411.         var response = responseXML.getElementsByTagName("result")[0].getAttribute('code'
  412.     } catch(err){
  413.         showError('bad response Posting...')
  414.         alert(xmlhttp.responseText)
  415.         return
  416.     }
  417.     
  418.     
  419.     if(response == 'done'){
  420.         showError('Favorite added!')
  421.         window.setTimeout('getLastUpdateTime()', 1000)
  422.     }
  423.     
  424. }
  425. function deleteFavorite(url){
  426.     var url = baseURL + 'posts/delete?url=' + encodeURIComponent( url )
  427.     
  428.     showError('deleting...')
  429.     loadXMLDoc(url, 'deleteFavorite', onResponseDeleteFavorite)
  430. }
  431. function onResponseDeleteFavorite(){
  432.     if( ! checkReadyState(xmlhttp) ){
  433.         return
  434.     }
  435.     var responseXML = xmlhttp.responseXML
  436.     if( responseXML == null ){
  437.         showError('Error loading XML')
  438.         return
  439.     }
  440.     
  441.     try{
  442.         var response = responseXML.getElementsByTagName("result")[0].getAttribute('code'
  443.     } catch(err){
  444.         showError('bad response Deleting...')
  445.         alert(xmlhttp.responseText)
  446.         return
  447.     }
  448.     
  449.     
  450.     if(response == 'done'){
  451.         showError('Favorite deleted!')
  452.         window.setTimeout('getLastUpdateTime()', 1000)
  453.     } else {
  454.         showError('Error: ' + response)
  455.     }
  456. }
  457. function getCurrentWebsiteURL(){
  458.     return external.get_tab(SECURITY_ID, external.cur_sel).document.URL
  459. }
  460. function getCurrentWebsiteTitle(){
  461.     return external.get_tab(SECURITY_ID, external.cur_sel).document.title
  462. }
  463. function getEditWebsiteURL(){
  464.     return editElement.href
  465. }
  466. function getEditWebsiteTitle(){
  467.     return editElement.innerText
  468. }
  469. function getEditWebsiteNotes(){
  470.     return editElement.extended
  471. }
  472. function getEditWebsiteTags(){
  473.     return editElement.tag
  474. }
  475. function displaySettings(){
  476.     loadSettings()
  477.     document.getElementById('favorites').style.display = 'none'
  478.     document.getElementById('settings').style.display = ''
  479.     document.getElementById('message').style.display = 'none'
  480.     document.getElementById('menu').style.display = 'none'
  481.     document.getElementById('showSettings').onclick = function(){hideSettings()}
  482. }
  483. function getDeliciousCookie(){
  484.     var deliciousWindow = getDeliciousWindow()
  485.     if(deliciousWindow == null){
  486.         window.open(deliciousURL);
  487.     }
  488.     var deliciousWindow = getDeliciousWindow()
  489.     if(deliciousWindow){
  490.         if(deliciousWindow.document.readyState == 'complete'){
  491.             saveCookie(deliciousWindow.document.cookie)
  492.         } else {
  493.             deliciousWindow.document.onreadystatechange = function(){
  494.                 if(deliciousWindow.document.readyState == 'complete'){
  495.                     saveCookie(deliciousWindow.document.cookie)
  496.                 }
  497.             }
  498.         }
  499.     }
  500. }
  501. function saveCookie(cookie){
  502.     var match = cookie.match(/.*?_user=(.*?)(;|$)/)
  503.     if(match){
  504.         var user = match[1]
  505.         writeSetting('authUser', user)
  506.         alert('Authenticated!')
  507.     } else {
  508.         writeSetting('authUser''')
  509.         alert('Cookie problem!/nCould not authenticate you./nMake sure you are logged into delicious.com')
  510.     }
  511.     
  512. }
  513. function getDeliciousWindow(){
  514.     var win
  515.     for(var i=0; i<external.tab_count; i++){
  516.         win = external.get_tab(SECURITY_ID, i)
  517.         if(win.document.URL.indexOf(deliciousURL) != -1){
  518.             return win
  519.         }
  520.     }
  521.     return null
  522.     
  523. }
  524. function hideSettings(){
  525.     document.getElementById('favorites').style.display = ''
  526.     document.getElementById('settings').style.display = 'none'
  527.     document.getElementById('message').style.display = 'none'
  528.     document.getElementById('menu').style.display = ''
  529.     document.getElementById('showSettings').onclick = function(){displaySettings()}
  530. }
  531. function cancel(){
  532.     hideSettings()
  533.     
  534.     if(authUser == ''){
  535.         var message = '<a href="javascript:displaySettings()">Login first!</a>'
  536.         document.getElementById('favorites').innerHTML = message
  537.     }
  538. }
  539. function save(){
  540.     /*if(userName != userNameNew){ 
  541.         writeFile(favoritesCache, '')
  542.     }*/
  543.     writeSetting('UpdateTime''')
  544.     saveSettings()
  545.     
  546.     location.reload()
  547. }
  548. function inArray( text, array ){
  549.     for(var i=0; i<array.length; i++){
  550.         if(text == array[i][0]){
  551.             return i
  552.         }
  553.     }
  554.     return -1
  555. }
  556. function loadSettings(){
  557.     var allInputTags = document.getElementsByTagName('input')
  558.     for(var i=0; i<allInputTags.length; i++) {
  559.         if(allInputTags[i].type=='checkbox') {
  560.             if(readSetting(allInputTags[i].id+'') == TRUE){
  561.                 allInputTags[i].checked = true
  562.             }
  563.             else {
  564.                 allInputTags[i].checked = false
  565.             }
  566.         }
  567.         if(allInputTags[i].type == 'text' && allInputTags[i].id != 'searchbox' && allInputTags[i].onkeydown == null){
  568.             allInputTags[i].value = eval(allInputTags[i].id+'')
  569.         }
  570.     }
  571.     
  572. }
  573. function saveSettings(){
  574.     var allInputTags = document.getElementsByTagName('input');
  575.     for(var i=0; i<allInputTags.length; i++) {
  576.         if(allInputTags[i].type == 'checkbox') {
  577.             if(allInputTags[i].checked == true){
  578.                 writeSetting(allInputTags[i].id+'', TRUE)
  579.             }
  580.             else {
  581.                 writeSetting(allInputTags[i].id+'', FALSE)
  582.             }
  583.         }
  584.         if(allInputTags[i].type == 'text' && allInputTags[i].id != 'searchbox' && allInputTags[i].onkeydown == null) {
  585.             writeSetting(allInputTags[i].id+'', allInputTags[i].value)
  586.         }
  587.     }
  588.     
  589. }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值