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

あなたは何を意図していますか。

あなたのコードでボタンをクリックするとID「aaa」の要素のinnerHTMLがスクリプト関数になります

于 2013-01-17T05:12:09.533 に答える
0

試す

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

ただし、特にこのようなインライン JavaScript は悪い習慣であることに注意する必要があります。writecontentページ要求と書き込み先のターゲットの ID という 2 つのパラメーターを受け入れるように関数を書き直すことができます。

新しい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 を使用したくないと明示的に述べたのでaddEventListener()、JavaScriptで使用することもできます。

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

そして、それはボタンを次のように変更します:

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

イベントリスナーの詳細については、Mozilla Developer Network を参照してください。

于 2013-01-17T04:58:28.593 に答える