2016-04-03 17 views
0

Bir sayfadan bağlantıları alan, bunları bir dizide saklayan ve yeni bir sekmede tek tıklamayla açılan bir araç geliştirmeye çalışıyorum. Tarayıcının pop-up spam filtresini tetiklemeden bunu gerçekleştirmenin bir yolu var mı?Açılan pencereyi tetiklemeden bir dizinden bağlantılar açın

İşte benim kod:

<?php 

    $base = "web.archive.org"; 
    $time = "/web/20160101000000*/"; 
    $domain = @$_POST["domain"]; 

    $ch = curl_init(); 

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_URL, "$base$time$domain"); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_TIMEOUT_MS, 20000); //in miliseconds 


    $output = curl_exec($ch); 
    curl_close($ch); 



    # REPLACES ALL URLs OF WAYBACK MACHINE 
    $replacedHrefHtml = preg_replace('/(href=")/', "href=\"https://web.archive.org", $output); 


    # REPLACES ALL SRCs OF WAYBACK MACHINE 
    $replacedsrc = preg_replace('/(src=")/', "src=\"https://web.archive.org", $replacedHrefHtml); 


    #get wbCalendar 

    $html = str_get_html($replacedsrc); 
    $elem = $html->find('div[id=wbCalendar]', 0); 

    #extract the links and store them into an array 
    $data = array(); 
    $open = ''; 
    foreach($elem->find('a') as $element) { 
      $extracted = $element->href; 
      $open .= "window.open('{$extracted}'); "; 
      $data[] = $extracted; 
    } 

    echo "<a href=\"#\" class=\"cd-read-more\" onclick=\"{$open}\" style=\"float:left;\">Open multiple links</a>"; 

>

Burada test edebilirsiniz:? Seotify.com/archive-opener peşin

teşekkürler.

+0

Hayır, yalnızca bir kullanıcı eylemi tarafından açılan pencereler, Yani kullanıcı aslında bir şeyi tıklar, izin verilir. – adeneo

+0

Bu UX için çok rahatsız edici. http://i.imgur.com/OXzWfoW.png –

+0

Uyarı için teşekkürler, @Adam. Aslında, her gün Waybackmachine'de 100'den fazla alanı kontrol eden ve binlerce bağlantıyı tek tek açmamız gereken küçük bir grup insan (benim dahil) var. Süreç günde 3 - 5 saat sürer ve bu 50 satırlık kod bu sefer 45 dakikaya kadar kesilir. Ancak, bu site için pop-up filtresini kaldırmaları gerektiğini düşünüyorum. –

cevap

0

Bildiğim kadarıyla, popup filtresinin sizi yakalayamadığından emin olmanın bir yolu yoktur. Yapabileceğim tek şey, pencereleri bir "tıklatma" etkinliğinde someElement.onclick = function(){ /*POPUP CODE*/ } (kodun bir kullanıcı eylemine yanıt olarak tetiklenmesi için) açılmasını sağlamak olduğunu düşünüyorum.

İlgili konular