[JavaScript, AJAX] Задай вопрос, получи ответ

Discussion in 'PHP' started by banned, 9 Jun 2007.

Thread Status:
Not open for further replies.
  1. BiG_][aKeR

    BiG_][aKeR New Member

    Joined:
    30 Nov 2008
    Messages:
    21
    Likes Received:
    1
    Reputations:
    0
    чуть не так,мне нужно скопировать диапазон сам,от d6294195251 и до aname,а потом уже сам URL выташить,потому как етих <img src в странице сотни три,и каждый раз местами меняються...
     
  2. FireFenix

    FireFenix Elder - Старейшина

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    PHP:
    <script language="javascript">

      var 
    testString '<a href="video1449_14935">' 
                          
    '<img src="http://442.gt3.vkadre.ru/assets/thumbnails/d6294195251.160.vk.jpg"/>' 
                       
    '</a>' 
                     
    '</div>' 
                   
    '</td>' 
                   
    '<td width="365px" style="vertical-align:top">' 
                     
    '<div style="padding-top:5px" id="videoInfo935">' 
                     
    '<div class="aname"><a href="video49_4935"> '
       
      var 
    re = new RegExp('<img src="http:\/\/442.gt3.vkadre.ru\/assets\/thumbnails\/(.*?)<div class="aname">''g');  
       
      
    matches re.exec(testString); 
       
      
    alert(matches[1]); 

    </script> 
    Выберет всё от картинки до дива uname

    вообще лучше вначале все картинки выдрать, а потом если нужно по позиции находить нужную
     
    #1642 FireFenix, 26 Jul 2009
    Last edited: 26 Jul 2009
  3. BiG_][aKeR

    BiG_][aKeR New Member

    Joined:
    30 Nov 2008
    Messages:
    21
    Likes Received:
    1
    Reputations:
    0
    1.Вопще мне надо даже не картинки адрес,а там будет a href ну то такое,просто дело в том что позиыи всё время меняються,сейчас та позыция может быть 32 а через 1 сек уже 67...тут неугадать...единственно что не меняеться так ето ето значение d6294195251,вот от него и нудо всё скопировать,потому как только по нему можно определить то ли ето что мне надо или нет...(
     
  4. BiG_][aKeR

    BiG_][aKeR New Member

    Joined:
    30 Nov 2008
    Messages:
    21
    Likes Received:
    1
    Reputations:
    0
    сайт вконтакте.ру надо вытянуть ссылку на определённое видео,у каждого загрудоного видео и добавленого себе полностью меняеться ID,единственное что постоянное ето ссылка не его картинку,как и в данном шаблоне...
    п.с. у меня такой же пример был выложен тут,и он не пашет же! по причине что в переменной есть переводы строки,с которыми регулярки как я понял тут не дружат! тут дело не в том как скопировать а в том чтобы вопще копировало!
    у тебя же вот пример переменной

    var testString = '<a href="video1449_14935">' +
    '<img src="http://442.gt3.vkadre.ru/assets/thumbnails/d6294195251.160.vk.jpg"/>' +
    '</a>' +
    '</div>' +
    '</td>' +
    '<td width="365px" style="vertical-align:top">' +
    '<div style="padding-top:5px" id="videoInfo935">' +
    '<div class="aname"><a href="video49_4935"> ';

    у тебя то ' ' и +,тоисть перевод строки и всё не воспринимает,вот и работает,в результате в переменной такая каша:

    Code:
    <a href="video1449_14935"><img src="http://442.gt3.vkadre.ru/assets/thumbnails/d6294195251.160.vk.jpg"/></a></div></td><td width="365px" style="vertical-align:top"><div style="padding-top:5px" id="videoInfo935"><div class="aname"><a href="video49_4935">
    хотя должно быть именно:

    Code:
    <a href="video1449_14935"> 
                          <img src="http://442.gt3.vkadre.ru/assets/thumbnails/d6294195251.160.vk.jpg"/>  
                       </a>  
                     </div> 
                   </td> 
                   <td width="365px" style="vertical-align:top">  
                    <div style="padding-top:5px" id="videoInfo935"> 
                     <div class="aname"><a href="video49_4935"> 
    Вот с ним и не работает...может как то попробывать заменить все \r\n и табуляцию? тогда мб похать будет токо)
     
  5. FireFenix

    FireFenix Elder - Старейшина

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    Для того чтобы учитывать переводы строк - нужно добавить мультистроковый флаг, но JS в этом плане страдает дибилизмом, т.к. точка не включает пробельные символы, для этого нада использовать конструкцию [\\s\\S]
    PHP:
    <script language="javascript">

      var 
    testString '<a href="video1449_14935">' 
                          
    '<img src="http://442.gt3.vkadre.ru/assets/thumbnails/d6294195251.160.vk.jpg"/>' +
                       
    '</a>' +
                     
    '</div>' +
                   
    '</td>' +
                   
    '<td width="365px" style="vertical-align:top">' +
                     
    '<div style="padding-top:5px" id="videoInfo935">' "\n" +
                     
    '<div class="aname"><a href="video49_4935">'

      var 
    re = new RegExp('<img src="http:\/\/442.gt3.vkadre.ru\/assets\/thumbnails\/([\\s\\S]*)<div class="aname">''gim');  

      
    matches re.exec(testString); 
       
      
    alert(matches[1]); 

    </script>
    флаги:
    g - global
    i - ignore case
    m - multiline
     
  6. j0ker13

    j0ker13 Elder - Старейшина

    Joined:
    28 Jul 2008
    Messages:
    199
    Likes Received:
    16
    Reputations:
    5
    есть страничка html. в нее фреймом вставляется другая с другого хоста. как получить текст содержашийся во врейме?)
    так выводит текст странички но не фрейма
     
  7. FireFenix

    FireFenix Elder - Старейшина

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    window.frames[0].document.body.innerHTML

    Только это будет неправомерный доступ, который можно отключить в настройках +)
     
  8. j0ker13

    j0ker13 Elder - Старейшина

    Joined:
    28 Jul 2008
    Messages:
    199
    Likes Received:
    16
    Reputations:
    5
    т.е. никак не получить доступ к содержимому фрейма если хосты различаются без "отказано в доступе"?)
    а если во фрейме будут поля можно как нить получить их значения?)
     
  9. FireFenix

    FireFenix Elder - Старейшина

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    как вариант JS/jQuery/etc + AJAX + RegEx парсим сайт (ссылка которого во фремйме) и отдаём всё пользователю
    вообще по хорошему - парсить всё нада на стороне сервера по время загрузки страницы
     
  10. inlanger

    inlanger Elder - Старейшина

    Joined:
    7 Jan 2007
    Messages:
    985
    Likes Received:
    283
    Reputations:
    27
    год назад мучал себя этим вопросом. Для себя понял - это нереально. Это противоречит политике безопасности браузера.
     
  11. j0ker13

    j0ker13 Elder - Старейшина

    Joined:
    28 Jul 2008
    Messages:
    199
    Likes Received:
    16
    Reputations:
    5
    щас потестим)

    еррор: разрешение отклонено(
    никак не сделает методами js/ajax запрос странички отличных от хоста?)
     
    #1651 j0ker13, 27 Jul 2009
    Last edited: 27 Jul 2009
  12. BiG_][aKeR

    BiG_][aKeR New Member

    Joined:
    30 Nov 2008
    Messages:
    21
    Likes Received:
    1
    Reputations:
    0
    всё прекрасно есле бы не одно но,ну странице больше 20 етих строк <div class="aname"> и регулярка копирует всё до последней строчки в которой есть <div class="aname">,а мне нужно чтобы скопировало до первой только,потому как каждое видео заключено в етот див,а мне нужно именно определённое вытащить,а не все сразу...
     
  13. FireFenix

    FireFenix Elder - Старейшина

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    ? - квантификатор жадности

    var re = new RegExp('<img src="http:\/\/442.gt3.vkadre.ru\/assets\/thumbnails\/([\\s\\S]*?)<div class="aname">', 'gim');
     
    1 person likes this.
  14. BiG_][aKeR

    BiG_][aKeR New Member

    Joined:
    30 Nov 2008
    Messages:
    21
    Likes Received:
    1
    Reputations:
    0
    во во во,это оно!!! пасиииб!!!!)))
     
  15. zifanchuck

    zifanchuck Elder - Старейшина

    Joined:
    27 Oct 2008
    Messages:
    396
    Likes Received:
    154
    Reputations:
    3
    Привет всем)
    У меня ламерский вопрос. С жабаскриптом не знаком. Можно чтобы в алерт окне была акимвная ссылка??? так
    <script>alert('<a href="http://yandex.ru">yandex.ru</a>')</script>
    некатит. Надаюсь на вашу помощь)
     
  16. imajo.ati

    imajo.ati Banned

    Joined:
    21 Feb 2008
    Messages:
    232
    Likes Received:
    62
    Reputations:
    8
    нет
     
  17. da_ff

    da_ff Elder - Старейшина

    Joined:
    11 Jul 2006
    Messages:
    118
    Likes Received:
    22
    Reputations:
    26
    это не совсем так. зависит от браузера. в опере можно. собственно таким хаком читал локальные файлы
     
  18. Zitt

    Zitt Elder - Старейшина

    Joined:
    7 May 2006
    Messages:
    736
    Likes Received:
    268
    Reputations:
    59
    есть функция
    function getRandom() { return Math.round(7*Math.random());}

    как сделать чтоб возвращаемое число не повторялось?
     
    #1658 Zitt, 30 Jul 2009
    Last edited: 30 Jul 2009
  19. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    PHP:
    var have_been = Array();
    function 
    in_array(needlehaystackargStrict) {
        var 
    key ''strict = !!argStrict;     
        if (
    strict) {
            for (
    key in haystack) {
                if (
    haystack[key] === needle) {
                    return 
    true;
                }
            }
        } else {
            for (
    key in haystack) {
                if (
    haystack[key] == needle) {
                    return 
    true;
                }
            }
        } 
        return 
    false;
    }
    function 
    randomNumber (m,n){
      
    parseInt(m);
      
    parseInt(n);
      
    number =  Math.floorMath.random() * (1) ) + m
      
    // return number;
      
      
    if( in_arraynumberhave_been ) ){
           
    // Нужно быть аккуратным, что бы массив have_been не переполнился всеми возможными значениями, иначе возникнет бесконечный цикл
          
    return randomNumber(m,n);
      } else {
          
    have_been.push(number);
        return 
    number;
      }
    }
    alertrandomNumber(1,10000) );
    alertrandomNumber(1,10000) );
    alertrandomNumber(1,10000) );
    alerthave_been );

    Вообщето, можно просто использовать функцию randomNumber без модификаций, с параметрами 1, большое число, то вероятность повторения очень мала
     
    #1659 Naydav, 30 Jul 2009
    Last edited: 30 Jul 2009
  20. Zitt

    Zitt Elder - Старейшина

    Joined:
    7 May 2006
    Messages:
    736
    Likes Received:
    268
    Reputations:
    59
    ага пасиб
     
Thread Status:
Not open for further replies.