Javascript 刷新live页面中的js src后,document.write函数不起作用

Javascript 刷新live页面中的js src后,document.write函数不起作用,javascript,Javascript,我在一个简单的项目中有这些代码,我想在单击按钮时刷新新闻代码。src正在更改,但它没有显示打印简单javascript的php文件中的内容 这里是thHTML <marquee id="ticker"></marquee> <button onclick="refresh()">Refresh</button> 刷新 以下是JS function refresh(){ document.getElementById('ticker')

我在一个简单的项目中有这些代码,我想在单击按钮时刷新新闻代码。src正在更改,但它没有显示打印简单javascript的php文件中的内容

这里是thHTML

<marquee id="ticker"></marquee>
<button onclick="refresh()">Refresh</button>

刷新
以下是JS

function refresh(){
    document.getElementById('ticker').innerHTML = "<script src='ticker.php?" + new Date().getTime() + "'></script>";
    }
函数刷新(){
document.getElementById('ticker').innerHTML=“”;
}
下面是ticker.php中的内容

<?php
 echo "document.write('It is the scrolling news');";
?>

使用Jquery调用ajax函数,然后转到php文件并返回所需的任何内容

var refresh = function(){

    $.ajax({
        url: 'ticker.php',
        type: 'POST',
        data: yourJsonData,
    })
    .done(function(msg) {
        document.getElementById('ticker').innerHTML = "<script src='ticker.php?" + new Date().getTime() + "'></script>";
    })
    //msg is equal to "document.write('It is the scrolling news');"
    //then JSON.parse(msg); to convert to a javascript object
    .fail(function(err) {
        console.log("error"+err);

    })
    .always(function() {
        console.log("complete");
    });

}
var refresh=function(){
$.ajax({
url:'ticker.php',
键入:“POST”,
数据:yourJsonData,
})
.done(函数(msg){
document.getElementById('ticker').innerHTML=“”;
})
//msg等于“document.write('这是滚动新闻');”
//然后使用JSON.parse(msg);转换为javascript对象
.失败(功能(错误){
console.log(“错误”+err);
})
.always(函数(){
控制台日志(“完成”);
});
}

使用Jquery调用ajax函数,然后转到php文件并返回所需的任何内容

var refresh = function(){

    $.ajax({
        url: 'ticker.php',
        type: 'POST',
        data: yourJsonData,
    })
    .done(function(msg) {
        document.getElementById('ticker').innerHTML = "<script src='ticker.php?" + new Date().getTime() + "'></script>";
    })
    //msg is equal to "document.write('It is the scrolling news');"
    //then JSON.parse(msg); to convert to a javascript object
    .fail(function(err) {
        console.log("error"+err);

    })
    .always(function() {
        console.log("complete");
    });

}
var refresh=function(){
$.ajax({
url:'ticker.php',
键入:“POST”,
数据:yourJsonData,
})
.done(函数(msg){
document.getElementById('ticker').innerHTML=“”;
})
//msg等于“document.write('这是滚动新闻');”
//然后使用JSON.parse(msg);转换为javascript对象
.失败(功能(错误){
console.log(“错误”+err);
})
.always(函数(){
控制台日志(“完成”);
});
}

实际上,使用
innerHTML
插入的脚本不会被浏览器解析,因此不会下载。因此,您的服务器不应在此处接收任何请求

执行此操作的方法(以编程方式在页面中插入新脚本)是使用
document.createElement
方法创建新的脚本元素。(见本帖)

这是实现这一点的方法:

function refresh(){
  var script = document.createElement("script");
  script.src = "/ticker.php?" + new Date().getTime();
  document.head.appendChild(script);
}

这将下载并运行新脚本:)

实际上,使用
innerHTML
插入的脚本不会被浏览器解析,因此不会被下载。因此,您的服务器不应在此处接收任何请求

执行此操作的方法(以编程方式在页面中插入新脚本)是使用
document.createElement
方法创建新的脚本元素。(见本帖)

这是实现这一点的方法:

function refresh(){
  var script = document.createElement("script");
  script.src = "/ticker.php?" + new Date().getTime();
  document.head.appendChild(script);
}

这应该下载你的新脚本并运行:)

不应该
ticker.php
是一个带有回调而不是js脚本源的http请求?尝试使其简单化不应该
ticker.php
是一个带有回调而不是js脚本源的http请求?尝试使其简单化“原生javascript”是什么意思?如果你指的是一个javascript文件(不是php),是的,它完全可以工作!!如果我用javascript更改脚本标记的源代码,并在源代码后面添加一个带有“?”的时间戳,那么浏览器会解析并执行脚本吗?我想是的。但我不确定你想要实现什么。这似乎过于复杂。您可能只想针对服务器获取一些数据并将其放在DOM中,对吗?在这种情况下,您应该执行AJAX请求并使用数据(而不是另一个脚本标记)修改
ticker
元素的
innerHTML
,您说的“原生javascript”是什么意思?如果你指的是一个javascript文件(不是php),是的,它完全可以工作!!如果我用javascript更改脚本标记的源代码,并在源代码后面添加一个带有“?”的时间戳,那么浏览器会解析并执行脚本吗?我想是的。但我不确定你想要实现什么。这似乎过于复杂。您可能只想针对服务器获取一些数据并将其放在DOM中,对吗?在这种情况下,您应该执行一个AJAX请求,并使用数据(而不是另一个脚本标记)修改
ticker
元素的
innerHTML