Blockchain technology is increasingly popular and has been widely applied in many industrial fields, due to its unique properties of decentralization, immutability, and traceability. Blockchain systems in different fields vary, with different block structures, consensus mechanisms and access permission models. These differences make it hard for different blockchain systems to interoperate with each other, which isolates them. Cross-chain technologies have been developed to solve this isolation problem in order to improve the interoperability of blockchains. Although some surveys on cross-chain technologies can be found, they are unable to keep up with the latest research progress due to their extremely fast pace of development. Moreover, the literature misses general criteria to evaluate the quality of cross-chain technologies. In this paper, a comprehensive literature review of cross-chain technologies is conducted by employing a comprehensive set of evaluation criteria. The preliminaries on blockchain interoperability are first presented. Then, a set of evaluation criteria is proposed in terms of security, privacy, performance, and functionality. The latest cutting-edge works are reviewed based on the proposed taxonomy of cross-chain technologies and their performance is evaluated against our proposed criteria. Finally, some open issues and future directions of cross-chain research are pointed out.