/* * Copyright 2005 Joe Walker * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.directwebremoting.ui.browser; import javax.servlet.http.Cookie; import org.directwebremoting.ScriptSessions; import org.directwebremoting.util.JavascriptUtil; /** * A copy of some of the functions from the Document DOM object on the server * @author Joe Walker [joe at getahead dot ltd dot uk] */ public class Document { /** * Add a cookie to a remote browser/browsers */ public static void setCookie(String name, String value) { ScriptSessions.addScript(("document.cookie = \"" + JavascriptUtil.escapeJavaScript(name) + "=" + JavascriptUtil.escapeJavaScript(value) + "\"")); } /** * Add a cookie to a remote browser/browsers */ public static void setCookie(Cookie cookie) { String name = JavascriptUtil.escapeJavaScript(cookie.getName()); String value = JavascriptUtil.escapeJavaScript(cookie.getValue()); String domain = cookie.getDomain() == null ? "" : ";domain=" + JavascriptUtil.escapeJavaScript(cookie.getDomain()); String path = cookie.getPath() == null ? "" : ";path=" + JavascriptUtil.escapeJavaScript(cookie.getPath()); String maxAge = cookie.getMaxAge() == -1 ? "" : ";max-age=" + cookie.getMaxAge(); String secure = !cookie.getSecure() ? "" : ";secure=true"; ScriptSessions.addScript(("document.cookie = \"" + name + "=" + value + domain + path + maxAge + secure + "\"")); } /** * This would be good, but it doesn't work on some browsers * @param title The page to navigate to */ public static void setTitle(String title) { ScriptSessions.addScript(("document.title = '" + JavascriptUtil.escapeJavaScript(title) + "';")); } }