摘要: 1.需要打開一個新窗口來顯示來自第三方的調查。
2.不能使用JavaScript(目前使用的目標=「_空白」,打開窗口。 3.必須使用JavaScript(目前使用的onclick)追蹤點擊次數 4.原來的窗口一定不能在點擊更改其內容。當onclick使用target =「_ blank」時無法打開新窗口
我有一個試圖推出一個新的窗口第三方調查一個JSP原來,代碼是推出這樣的新窗口:。
<a id="customer_survey_button" href="#" target="_blank" onclick="recordOutboundLink(this, 'Outbound Links', 'blah.com');openChildWindow('http://www.blah.com/f.asp?etcetera','TAKE SURVEY');return false;" class="genbut">TAKE SURVEY</a>
它的工作在FF,但不是鍍鉻它造成Chrome的一個安全問題,就像'不安全的JavaScript嘗試訪問加載一個域的框架(新窗口),而它的起源n是另一個域。我的解決辦法是打開使用HTML窗口,像這樣:
<a id="customer_survey_button" href="http://www.blah.com/f.asp?etcetera" target="_blank" onclick="recordOutboundLink(this, 'Outbound Links', 'blah.com');return false;" class="genbut">Take Survey</a>
的問題是,未在新窗口中打開。在調試過程中,我從上面的代碼中刪除了onclick,並且它在新窗口中打開。我不確定它在JS代碼中是否出錯...
<script type="text/javascript">
<!--
var pageTracker = _gat._getTracker("<%=googleTrackerId%>");
pageTracker._initData();
pageTracker._trackPageview();
function recordOutboundLink(link, category, action) {
try {
pageTracker._trackEvent(category, action);
setTimeout('document.location = "' + link.href + '"', 100)
}catch(err){}
}
// -->
</script>
...或者它只是在同一個錨標記中使用target和onclick的問題。有什麼想法嗎?
我研究了其他地方,並在堆棧溢出,我發現了下面的結果,但似乎沒有解決這種情況。例如:
這有助於一種方式,因爲我能夠測試刪除「返回false」。這與「user1223427」的結果相同 - 它在兩個不同的窗口中呈現相同的頁面。 它沒有幫助,因爲我需要一個非JavaScript的方式來打開目標URL(由於提到的安全問題)。 OnClick for google analytics and target _blank. The link does not work?
這一次沒有幫助,因爲我沒有使用jQuery和我不明白JQuery的解決方案,我的處境之間的連接 select onclick that contains _blank
這僅適用於獲得跟蹤代碼工作,沒有問題的新窗口打開: Google Analytics - Download clicks tracking
我認爲這一個會有一個很好的結果,但它的解決方案是一個JS之一。 Bug in external link tracking when opening the link in a new window in Google Analytics?
註釋掉和刪除返回false工作!現在我需要看看註釋setTimeout會有什麼影響(這個函數被調用到所有地方,所以我可能需要爲這個調查按鈕創建一個特定的按鈕)。 – ckpop 2012-04-06 21:23:52
我還創建了一個單獨的函數(recordOutboundLinkOpenWindow),並更改了setTimeout以用window.open替換document.location,而不是將整行註釋掉。這是完美的。謝謝!希望我有15個聲望,所以我可以將你的反應提高! – ckpop 2012-04-06 21:28:55
沒問題。樂意效勞。 – 2012-04-06 21:54:05