Bookmarklet ожидают, пока JavaScript не загружается

Создать ключ справки здесь

s=df.Age=='5 ~ 9'
yourdf=df.groupby([df.Geo,s]).agg({'Age':'last','2010':'sum','2011':'sum','2012':'sum'})
yourdf
                 Age  2010  2011  2012
Geo     Age                           
bc      False  0 ~ 4     3     6     3
        True   5 ~ 9     3     1     1
mt      False  0 ~ 4     6     5     5
        True   5 ~ 9     6     6     6
toronto False  0 ~ 4     7     4     9
        True   5 ~ 9     4     5     5
20
задан cgp 16 April 2009 в 14:51
поделиться

3 ответа

Это зависит от того, как вы на самом деле загружаете jQuery. Если вы добавляете элемент script на страницу, вы можете использовать ту же технику, которую использует jQuery для динамической загрузки скрипта.

EDIT : Я сделал свою домашнюю работу и фактически извлек функцию loadScript из кода jQuery для использования в вашей закладке. Это может быть полезно для многих (включая меня).

function loadScript(url, callback)
{
    var head = document.getElementsByTagName("head")[0];
    var script = document.createElement("script");
    script.src = url;

    // Attach handlers for all browsers
    var done = false;
    script.onload = script.onreadystatechange = function()
    {
        if( !done && ( !this.readyState 
                    || this.readyState == "loaded" 
                    || this.readyState == "complete") )
        {
            done = true;

            // Continue your code
            callback();

            // Handle memory leak in IE
            script.onload = script.onreadystatechange = null;
            head.removeChild( script );
        }
    };

    head.appendChild(script);
}


// Usage: 
// This code loads jQuery and executes some code when jQuery is loaded
loadScript("https://code.jquery.com/jquery-latest.js", function()
{
    $('my_element').hide();
});
24
ответ дан 30 November 2019 в 00:52
поделиться

Чтобы ответить на ваш первый вопрос: Javascript интерпретируется последовательно, поэтому любой следующий код букмарклета не будет выполняться, пока библиотека не будет загружена (при условии, что библиотека была успешно интерпретирована - без синтаксических ошибок).

Чтобы предотвратить кэширование файлов, вы можете добавить бессмысленную строку запроса ...

url = 'jquery.js?x=' + new Date().getTime();
1
ответ дан 30 November 2019 в 00:52
поделиться

Я немного сблизился с этим , но не полностью , Было бы неплохо иметь отдельный пример букмарклета, демонстрирующий, как избежать кеширования.

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

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