我想在我的页面上集成LinkedIn共享。
阅读LinkedIn提供的文档:https://developer.linkedin.com/docs/getting-started-js-sdk
..我很惊讶地看到他们在我页面的head部分需要这个脚本标记
<script type="text/javascript" src="//platform.linkedin.com/in.js">
api_key: [API_KEY]
onLoad: [ONLOAD]
authorize: [AUTHORIZE]
lang: [LANG_LOCALE]
</script>
我不知道这里发生了什么。首先,w3schools说“”“注意:如果存在”src“属性,则元素必须为空。”“(https://www.w3schools.com/tags/tag_script.asp)。我也去了这里:https://html.spec.whatwg.org/multipage/scripting.html#the-script-element(我不是100%肯定这是多么权威......但看起来权威的格式和长度:P) - 它还说那里如果有一个src
属性,那么身体应该基本上是空的 - 无论如何 - 这两个资源无法解释LinkedIn的脚本语法。
那么有谁知道脚本体语法是什么?那些JS标签?如果是这样,我不知道它们是如何被使用的。我认为标签与continue / break语句一起使用,以摆脱循环。我不明白LinkedIn的API如何通过我提供的语法来获取我的信息。脚本体以某种方式被提供给脚本,它自己解析它吗?
有人可以向我解释发生了什么事吗?
谢谢!
你说的是对的。添加src
属性时,不会执行script
的主体。然而,有一种方法来解决这个问题。那是通过检索脚本标签,提取innerHTML
并在其上使用eval
。当然,您需要在准备好文档时执行此操作。
我不知道LinkedIn是如何做到的,但HTML标准并没有改变它们,也没有加载的顺序,所以要么使用类似于我解释的东西,要么使用更聪明的方法来解析脚本的主体。
需要考虑的其他注意事项:您可以将其绑定到库中,而不是使用文档就绪事件。在检索最后一个可用的脚本标记,并在加载库时提取主体,这将是以任一方式加载的最后一个元素,因此您应该能够在不使用任何事件的情况下检索代码。 (这需要测试,但DOM元素是同步加载的,自上而下的方法)。
显然不建议使用eval
,它很慢,但绝对提供您正在寻找的功能。
PS。原谅任何格式错误。我正在从距离家2英里的移动设备上打字。否则,我会非常高兴甚至提供一些示例代码片段并自己进行上述测试。