这段剪辑代码:
var trackEvent = (function(event) {
var script = document.createElement('script');
script.setAttribute('type', 'text/javascript');
$(script).html( event );
$('head').append($(script));
});
在IE8中不起作用(JQuery版本是1.9)。它只是向script
添加了一个新的<head>
标记,其中包含一些内容。我见过here这可能是append
问题,但在这种情况下如何解决呢?
修改:
我的解决方案是直接执行代码,而不是嵌入代码。无论如何,.append
和IE8的问题仍然存在,这个问题可能对其他用户有用。
答案 0 :(得分:0)
由于我没有IE8(只有IE11),我无法重现这个问题。但我可以看到,旧版本可能不会自动执行插入的脚本。 您可以尝试以下解决方法:
var trackEvent = (function(event) {
var script = document.createElement('script');
script.setAttribute('type', 'text/javascript');
// Wrap code in a function
var wrappedEvent = 'function __myTest() { ' + event + '}';
$(script).html(wrappedEvent);
$('head').append($(script));
// Call that function
__myTest();
});
我为你做了JSFiddle尝试。
答案 1 :(得分:0)
当你可以使用jquery时,你正在混合vanilla js和jquery。我不认为这两个人在这里打得很好。
试试这个jquery解决方案
var trackEvent = (function(event) {
var script = $('<script>');
script.attr('type','text/javascript');
script.html(event);
$('head').append(script);
});