fix open link handling for cross-platform, and open in _self