0

所以我有以下 Jquery 调用 Javascript 方法

$j("a.Pinterest").attr("href", "javascript:void(addScript());");

这是 Javascript 方法

   function addScript() {
    var e = document.createElement('script');
    e.setAttribute('type', 'text/javascript');
    e.setAttribute('charset', 'UTF-8');
    e.setAttribute('src', 'http://assets.pinterest.com/js/pinmarklet.js?r=' + Math.random() * 99999999);
    return document.body.appendChild(e);
}

我想知道是否有办法在 Jquery 中拥有这一切?

4

4 回答 4

1
$j("a.Pinterest").attr("href", "javascript:void(addScript());");

请不要这样做。我建议使用点击处理程序。

$j("a.Pinterest").click(addScript);

然后在你的addScript你可以getScript用来加载脚本。

function addScript(e) {
    e.preventDefault();
    $j.getScript('http://assets.pinterest.com/js/pinmarklet.js');
}
于 2012-04-13T15:55:13.250 回答
1

http://api.jquery.com/jQuery.getScript/

$.getScript("http://assets.pinterest.com/js/pinmarklet.js")
    .done(function(script, textStatus) {
     console.log( textStatus );
 })

编辑:我没有尝试这个,我只是把你的地址扔到了 getScript 演示中。

于 2012-04-13T15:48:21.337 回答
0
function addScript() {
      return $('<script/>',{
                          'type':'text/javascript',
                          'charset':'UTF-8',
                          'src':'http://assets.pinterest.com/js/pinmarklet.js?r=' + Math.random() * 99999999 
              }).appendTo("body")[0];
}
于 2012-04-13T15:50:17.297 回答
0

您可以使用 $ 选择器在 jQuery 中创建元素。

$('<script></script>')

jQuery 也是可链接的,所以你可以这样:

$('<script></script>')
    .attr({
        'type' : 'text/javascript',
        'charset', 'UTF-8',
        'src' : 'http://assets.pinterest.com/js/pinmarklet.js?r=' + Math.random() * 99999999)
     })
     .appendTo(whatever)

如果您正在执行条件脚本加载,您可能需要查看yepnope库。

我会质疑为什么您会在单击按钮时将脚本动态添加到页面中。似乎您希望脚本准备好并等待用户单击。如果您担心加载时间,但页面底部的脚本标签会延迟加载。

于 2012-04-13T15:51:58.700 回答