The reason for this is that after the list of results is loaded, the page loads Google Translate iframes (with the same address), which is what the translator ends up bound to. In detectWeb you should simply check for the presence of multiple results (the same way you do in doWeb, so create a single function to do this) before returning "multiple". This way you will avoid any unexpected surprises if anything changes on the way Google Translate service is loaded.