• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Inserting contents in <head>
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Inserting contents in <head>


  • Subject: Re: Inserting contents in <head>
  • From: email@hidden
  • Date: Mon, 6 Mar 2006 16:26:46 +0200

Dear Jean-Francois

Thanks very much, I am actually attempting to insert a resource
(specifically both a style resource and javascript).

Vincent

>
>
>
>---- Original Message ----
>From: email@hidden
>To: email@hidden
>Subject: Re: Inserting contents in <head>
>Date: Mon, 06 Mar 2006 08:29:43 -0500
>
>>We have generalized this in our generic WOComponent super-class.
>>
>>GenericWOComponent.java ...
>>
>>	public void appendToResponse(WOResponse res, WOContext ctx) {
>>		super.appendToResponse(res, ctx);
>>		addRequiredWebResources(res);
>>	}
>>
>>	public void addJSResource(WOResponse res, String fileName) {
>>		NSMutableDictionary uInfo = responseUserInfo();
>>		if(uInfo.objectForKey(fileName) == null) {
>>			uInfo.setObjectForKey(fileName, fileName);
>>			WOResourceManager worm =
>>WOApplication.application().resourceManager();
>>			String url = worm.urlForResourceNamed(fileName, null,
>>session().languages(), context().request());
>>			String js = "<script type=\"text/javascript\" src=\""+ url
>>+"\"></script>";
>>			insertInResponseBeforeTag(res, js, htmlCloseHead());
>>		}
>>	}
>>
>>	public void insertInResponseBeforeTag(WOResponse res, String
>content,
>>String tag) {
>>		String stream = res.contentString();
>>		int idx = stream.indexOf(tag);
>>		String pre = stream.substring(0,idx);
>>		String post = stream.substring(idx, stream.length());
>>		res.setContent(pre+content+post);
>>	}
>>
>>	public NSMutableDictionary responseUserInfo() {
>>		NSDictionary d = context().response().userInfo();
>>		NSMutableDictionary r = null;
>>		if(d == null) {
>>			r = new NSMutableDictionary();
>>			context().response().setUserInfo(r);
>>		} else {
>>			if(d instanceof NSMutableDictionary) {
>>				r = (NSMutableDictionary)d;
>>			} else {
>>				r = d.mutableClone();
>>				context().response().setUserInfo(r);
>>			}
>>		}
>>		return r;
>>	}
>>
>>	public String htmlCloseHead() {
>>		// our real code use something like System.getProperties to get
>this
>>value
>>		return "</head>";
>>	}
>>
>>
>>Then we use it in our specialized components.
>>SpecializedWOComponent.java ...
>>	public void addRequiredWebResources(WOResponse res) {
>>		// add a javascript 'include' in the 'header'
>>		addJSResource(res, "SpecializedWOComponent.js");
>>	}
>>
>>You get the idea, you can use this technique to add css include, add
>
>>custom initialization, etc.
>>In a project, where we have a common 'frame' where the '<body>' tag
>is
>>well defined, we can even add script to the body.onLoad custom
>function
>>using a variation of this technique.
>>
>>Look at the code in the DemoAjax project, it is using this technique
>
>>for the JSProxyRPC.
>>
>>
>>I first feel like it wasn't the right way to do, and I tried to deal
>
>>with the DOM tree instead.  But as the html is incomplete (when you
>get
>>it in appentToResponse in a sub-component), the parser wasn't able
>to
>>parse the response content and give a DOM tree of it.  So this
>wasn't
>>an option.
>>This is the best I found, but I still think a DOM like approach
>would
>>be better.
>>
>>- jfv
>>
>>Le 06-03-06, à 05:56, Vincent Coetzee a écrit :
>>
>>> Dear List
>>>
>>> I have a WebObjects component that I have developed that is a
>partial
>>> document. It preferably needs to insert some content into the
>>> <head></head> portion of a page, and additionally only needs to
>insert
>>> it if it is no already there. How does one insert content into
>>> <head></head> and test whether it has already been inserted.
>>>
>>> Any pointers would be appreciated.
>>>
>>> Vincent


 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

  • Prev by Date: Re: Inserting contents in <head>
  • Next by Date: Re: Inserting contents in <head>
  • Previous by thread: Re: Inserting contents in <head>
  • Next by thread: Re: Making a dynamic Style sheet, suggestions
  • Index(es):
    • Date
    • Thread