Как получить данные с JavaScript с другого сервера?

Разделение на несколько листов

Option Explicit

Sub SplitToMultiWorksheets()

    Const cSheets As String = "Sheet1,Sheet2,Sheet3,Sheet4"
    Const cStr1 As String = "Are"
    Const cStr2 As String = "You"
    Const cStr3 As String = "me"
    Const cFirstR As Long = 1
    Const cCol1 As Variant = "A"
    Const cCol2 As Variant = "B"
    Const cCol3 As Variant = "C"
    Const cCol4 As Variant = "D"
    Const cFirst1 As Long = 12
    Const cFirst2 As Long = 20

    'Const cLast1  As Long = 19
    'Const cLast2 As Long = 29

    Dim vntSheets As Variant
    Dim vnt1(2) As Variant
    Dim vnt2(2) As Variant
    Dim lastR As Long
    Dim i As Long
    Dim wsName As String
    Dim First1 As Long
    Dim First2 As Long


    vntSheets = Split(cSheets, ",")

    For i = 0 To UBound(vnt1)
        vnt1(i) = cFirst1 - 1
        vnt2(i) = cFirst2 - 1
    Next

    With ThisWorkbook.Worksheets(vntSheets(0))
        lastR = .Cells(.Rows.Count, cCol1).End(xlUp).Row
        For i = cFirstR To lastR
            If .Cells(i, cCol1) = cStr1 Then
                wsName = vntSheets(.Cells(i, cCol2) - 1)
                Select Case .Cells(i, cCol3)
                    Case cStr2
                        First1 = vnt1(.Cells(i, cCol2) - 2) + 1
                        vnt1(.Cells(i, cCol2) - 2) = First1
                        .Parent.Worksheets(wsName).Cells(First1, cCol3) _
                                = .Cells(i, cCol4)
                    Case cStr3
                        First2 = vnt2(.Cells(i, cCol2) - 2) + 1
                        vnt2(.Cells(i, cCol2) - 2) = First2
                        .Parent.Worksheets(wsName).Cells(First2, cCol3) _
                                = .Cells(i, cCol4)
                End Select
            End If
        Next
    End With

End Sub
19
задан DRosenfeld 12 July 2017 в 14:34
поделиться

5 ответов

Необходимо проверить jQuery. Это имеет богатую основу функциональности Ajax, которая может дать Вам питание сделать все это. Можно загрузиться на внешней странице и проанализировать, это - содержимое HTML с интуитивными подобными CSS селекторами.

Использование в качестве примера $.get();

$.get("anotherPage.html", {}, function(results){
  alert(results); // will show the HTML from anotherPage.html
  alert($(results).find("div.scores").html()); // show "scores" div in results
});

Для внешних доменов я должен был создать локальный Сценарий PHP, который будет действовать как посредник. jQuery назовет локальную передачу Сценария PHP в URL другого сервера как аргумент, локальный Сценарий PHP соберет данные, и jQuery считает данные с локального Сценария PHP.

$.get("middleman.php", {"site":"http://www.google.com"}, function(results){
  alert(results); // middleman gives Google's HTML to jQuery
});

Предоставление middleman.php что-то вроде

<?php

  // Do not use as-is, this is only an example.
  // $_GET["site"] set by jQuery as "http://www.google.com"
  print file_get_contents($_GET["site"]);

?>
22
ответ дан 30 November 2019 в 03:59
поделиться

Можно также использовать iframe для эмуляции запроса ajax. Это сохраняет Вас путаница необходимости кодировать решение для Бэкенда для проблемы Frontend. Вот пример:

function setUploadEvent(typeComponet){
       var eventType = "";
       var iframe = document.getElementById("iframeId");
       try{
           /* for Mozilla / Opera9 */
           if (/(?!.*?compatible|.*?webkit)^mozilla|opera/i.test(navigator.userAgent)) {
                eventType = "onload";
           }else{
           /* IE  */
                eventType = "onreadystatechange";
           }

           iframe[eventType] = function(){
                var doc = iframe.contentDocument || iframe.contentWindow.document;
                var response = doc.body.innerHTML; /* or what ever content you are looking for */
             }
           }
       catch(e){
           alert("Error loading content")}
       } 

, Который должен добиться цели. Обратите внимание на то, что строка Определения браузера не является самой чистой, необходимо абсолютно использовать тех предоставленных во всех наиболее распространенных платформах JS (Прототип, JQuery, и т.д.)

1
ответ дан 30 November 2019 в 03:59
поделиться

Запишите сценарий прокси, что вперед вдоль запроса HTTP от Вашего домена, это обойдет ограничения XMLHttpRequest.

, Если Ваше использование PHP, просто используйте ЗАВИХРЕНИЕ, чтобы запросить и прочитать страницу, то просто выложенный HTML, как будто это был от Вас домен.

3
ответ дан 30 November 2019 в 03:59
поделиться

Необходимо будет записать прокси на сервере, чтобы сделать это. И все запросы будут к Вашему серверу, и затем Ваш сервер загрузит HTML и передаст его обратно клиенту. И нет никакого хорошего способа реализовать это с помощью JavaScript только.
jQuery содержит функциональность для загрузки данных JSON или внешнего использования сценариев XmlHttpRequest, но эта функциональность не может использоваться для страниц HTML. Также можно проверить этот поток из списка рассылки jQuery.

0
ответ дан 30 November 2019 в 03:59
поделиться

Вы добавляете данные в Hello.js в качестве массива, JSON или подобных. Пример: var jousonsonth = новый массив (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

Получение JavaScript с другого сервера не намного проще .. :-)

0
ответ дан 30 November 2019 в 03:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: