xwitter を OAuth 認証にした。そこからコードを抜き出して JS で Twitter の OAuth やるならまあこんな感じじゃねっていうサンプルを貼っておく。Same origin policy に引っかかる環境では動かせない。あくまでサンプル。oauth.js 使うよ。

<!DOCTYPE html>
<html>
  <head>
	<meta charset="utf-8" />
	<title>OAuth test</title>
	<script src="oauth.js"></script>
	<script src="sha1.js"></script>
	<script src="jquery-1.4.2.min.js"></script>
	<script src="jquery.cookie.js"></script>
<script>
jQuery(function($) {
	var _consumer_token = '';
	var _consumer_token_secret = '';
	var _pref_access_token = 'access_token';
	var _pref_access_token_secret = 'access_token_secret';
	var _oauth_token = $.cookie(_pref_access_token) || '';
	var _oauth_token_secret = $.cookie(_pref_access_token_secret) || '';

	var _message = function(spec) {
		var that = {};

		that.action = spec.url;
		that.method = spec.type;
		that.parameters = [];

		OAuth.setParameter(that, 'oauth_consumer_key', _consumer_token);
		if (_oauth_token) {
			OAuth.setParameter(that, 'oauth_token', _oauth_token);
		}
		var data = spec.data;
		for (var prop in data) {
			if (data.hasOwnProperty(prop)) {
				OAuth.setParameter(that, prop, data[prop]);
			}
		}

		OAuth.setTimestampAndNonce(that);
		OAuth.SignatureMethod.sign(that, {
		  consumerSecret : _consumer_token_secret,
		  tokenSecret    : _oauth_token_secret
		});

		return that;
	};

	var _init = function() {
		var message = _message({
		  type : 'GET',
		  url  : 'https://api.twitter.com/1/statuses/home_timeline.xml'
		});
		$.ajax({
		  type : message.method,
		  url  : message.action,
		  data : OAuth.getParameterMap(message.parameters),
		  success: function(data) {
			  alert('success!');
		  }
		});
	};

	(function() {
		if (_oauth_token && _oauth_token_secret) {
			_init();
			return;
		}

		var re_token        = /oauth_token=([^&]+)/;
		var re_token_secret = /oauth_token_secret=([^&]+)/;

		var message = _message({
		  type : 'GET',
		  url  : 'https://api.twitter.com/oauth/request_token'
		});
		$.ajax({
		  type : message.method,
		  url  : message.action,
		  data : OAuth.getParameterMap(message.parameters),
		  success: function(data) {
			  _oauth_token        = ( re_token.exec(data)        || [] )[1];
			  _oauth_token_secret = ( re_token_secret.exec(data) || [] )[1];

			  var message = _message({
				type : 'GET',
				url  : 'https://api.twitter.com/oauth/authorize'
			  });
			  var win = window.open(OAuth.addToURL(message.action, message.parameters));
			  var oauth_verifier = $.trim(prompt('PIN')); win.close();

			  var message = _message({
				type : 'POST',
				url  : 'https://api.twitter.com/oauth/access_token',
				data : { 'oauth_verifier': oauth_verifier }
			  });
			  $.ajax({
				type : message.method,
				url  : message.action,
				data : OAuth.getParameterMap(message.parameters),
				success: function(data) {
					_oauth_token        = ( re_token.exec(data)        || [] )[1];
					_oauth_token_secret = ( re_token_secret.exec(data) || [] )[1];
					$.cookie(_pref_access_token, _oauth_token);
					$.cookie(_pref_access_token_secret, _oauth_token_secret);
					_init();
				}
			  });
		  }
		});
	})();
});
</script>
  </head>
  <body>
  </body>
</html>

HTAだと一応動くかな。cookie保存がダメみたいだけど。