1

我有一个函数 ajaxinclude() ,它包含页面的内容。当写成这样时,它可以完美地工作:

<div>
     <script type="text/javascript">
          ajaxinclude("info/content/About.php")
     </script>
</div>

现在,我想要一个点击按钮。因此,

<button onclick="document.getElementById('aaa').innerHTML = '<script type='text/javascript'>ajaxinclude(\'info/content/About.php\');</script>">Hello</button>

但这不起作用。

另一种方法是

<button onclick="document.getElementById('aaa').innerHTML = '<script type='text/javascript'>' + ajaxinclude('info/content/About.php') + '</script>">Hello</button>

但这也不起作用。

这是我的 ajaxinclude() 函数:

var rootdomain = "http://" + window.location.hostname;

function ajaxinclude(url) {
    var page_request = false

    if (window.XMLHttpRequest)
    page_request = new XMLHttpRequest()
    else if (window.ActiveXObject){
        try {
            page_request = new ActiveXObject("Msxml2.XMLHTTP")
        } 
        catch (e){
            try{
                page_request = new ActiveXObject("Microsoft.XMLHTTP")
            }
            catch (e){}
        }
    }
    else
    return false
    page_request.open('GET', url, false)
    page_request.send(null)
    writecontent(page_request)
}

function writecontent(page_request){
    if (window.location.href.indexOf("http")==-1 || page_request.status==200)
    document.write(page_request.responseText)
}

如何,如何在按钮单击时包含文本?

PS:我不想要 jQuery。

4

2 回答 2

0

尝试

<button onclick="document.getElementById('aaa').innerHTML = ajaxinclude('info/content/About.php')">Hello</button>

但是我必须警告,内联 JavaScript 是不好的做法,尤其是像这样!您可以重写您的writecontent函数以接受两个参数:页面请求和要写入的目标的 ID。

您的新writecontent功能将是:

function writecontent(page_request, write_target){
    if (window.location.href.indexOf("http")==-1 || page_request.status==200) {
        document.getElementById(write_target).innerHTML = page_request.responseText;
    }
}

您需要在那里传递写入目标的 ID,并且由于您是从 调用writecontentajaxinclude,因此您也需要那里的参数:

function ajaxinclude(url, write_target) {
    // ...
    writecontent(page_request, write_target);
}

在按钮中:

<button onclick="ajaxinclude('info/content/About.php', 'aaa')">Hello</button>

可选择继续...

更好的做法是将click动作绑定到按钮而不是使用onclick. 使用 jQuery 会更容易,但由于您明确声明不想使用 jQuery,您也可以addEventListener()在 JavaScript 中使用:

document.getElementById('thisbutton').addEventListener('click', function(){ajaxinclude('info/content/About.php', 'aaa')}, false);

这会将按钮更改为:

<button id='thisbutton'>Hello</button>

在 Mozilla 开发人员网络上阅读有关事件侦听器的更多信息

于 2013-01-17T04:58:28.593 回答
0

你的意图是什么。

通过您的代码单击按钮,ID为“aaa”的元素的innerHTML成为脚本函数

于 2013-01-17T05:12:09.533 回答