如何在JS的文本中包含JS

时间:2013-01-17 04:55:52

标签: javascript html ajax button interaction

我有一个函数,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。

2 个答案:

答案 0 :(得分: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,并且由于您从writecontent调用ajaxinclude,因此您也需要参数:

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

按钮:

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

可选择继续...

更好的做法是将click操作绑定到按钮,而不是使用onclick。使用jQuery会更容易,但是既然你明确表示你不想使用jQuery,你也可以在JavaScript中使用addEventListener()来实现它:

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

这会将按钮更改为:

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

Read more about event listeners at the Mozilla Developer Network

答案 1 :(得分:0)

你的意图是什么。

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