如何使用 <script> jQuery 加载在标签之间具有代码的外部 JS 库



我拥有的原始代码是

<script type="text/javascript" src="http://platform.linkedin.com/in.js">
    api_key: qwerty
</script>

我想在触发某些内容后使用 jQuery 完成此代码。像这样的东西

jQuery.getScript('http://platform.linkedin.com/in.js');

问题是我不确定api_key部分的作用,我从未见过对外部库的请求和脚本标签之间的代码的组合。有没有办法用jQuery来模仿它?还有 - 那条线有什么作用?:)

谢谢!

这不是我最初发布的问题的答案,这个问题更抽象。但是,如果有人偶然发现了与LinkedIn相关的这个问题,这是异步加载其框架的方法。

jQuery.getScript("http://platform.linkedin.com/in.js?async=true", function success() {
    IN.init({
        api_key: "qwerty"
    });
});

我做了一些挖掘,当你加载脚本时会发生什么,发现in.js解析了src本身的标签的内容,并使用它们来构建一个新的脚本标签附加到头部。

根据您的帖子,它附加了

<script src="https://www.linkedin.com/uas/js/userspace?v=0.0.2000-RC1.20888-1402&amp;apiKey=qwerty&amp;"></script>

到头。 用户空间.js显然拒绝了 API 密钥,但由于这是一种加载数据的专有方法,我无法预测如果您尝试将其转换为 ajax 调用,它将如何工作。

更新:根据脚本标记标准,"如果 src 具有 URI 值,则用户代理必须忽略元素的内容并通过 URI 检索脚本。 这允许LinkedIn将无效的Javascript放在脚本标签中,知道它永远不会被浏览器评估。

这应该在jQuery移动网站上正常工作。

<script type="IN/Apply" data-companyname="XXX" data-jobtitle="XXX" data-joblocation="XXX" data-email="XXX@XXX.XXX">
</script>
<script type="text/javascript">
$(function() {
    if(typeof(IN)=="undefined"){
        $.getScript("//platform.linkedin.com/in.js?async=true", function success() {
            IN.init({api_key: "XXX"});
        });
    }
    else{
        IN.parse();
    }
});
</script>

最新更新